From 8359b7182496be5cb10d4c9eba1b815d9406ae47 Mon Sep 17 00:00:00 2001
From: S34N <12197162+S34NW@users.noreply.github.com>
Date: Wed, 29 Dec 2021 14:16:50 +0000
Subject: [PATCH] Ports TG statusbar changes & screentips (#16505)
---
SQL/paradise_schema.sql | 2 +
SQL/updates/28-29.sql | 4 +
code/__DEFINES/flags.dm | 3 +
code/__DEFINES/misc.dm | 12 +-
code/_onclick/hud/action_button.dm | 1 +
code/_onclick/hud/alert.dm | 1 +
code/_onclick/hud/blob_overmind.dm | 5 +-
code/_onclick/hud/ghost.dm | 1 +
code/_onclick/hud/hud.dm | 6 +
code/_onclick/hud/screen_objects.dm | 3 +-
code/_onclick/hud/screentip.dm | 18 ++
code/game/atoms.dm | 15 ++
code/game/objects/items.dm | 1 +
code/game/turfs/simulated/floor.dm | 1 +
.../turfs/simulated/walls_indestructible.dm | 1 +
code/game/turfs/space/space.dm | 1 +
code/modules/client/client_procs.dm | 12 +-
.../login_processing/10-load_preferences.dm | 4 +-
.../client/preference/link_processing.dm | 12 +-
code/modules/client/preference/preferences.dm | 6 +
.../client/preference/preferences_mysql.dm | 10 +-
config/example/config.toml | 2 +-
interface/skin.dmf | 166 ++++++++++--------
paradise.dme | 1 +
24 files changed, 201 insertions(+), 87 deletions(-)
create mode 100644 SQL/updates/28-29.sql
create mode 100644 code/_onclick/hud/screentip.dm
diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql
index 5bb897169eb..a58dfeb8947 100644
--- a/SQL/paradise_schema.sql
+++ b/SQL/paradise_schema.sql
@@ -284,6 +284,8 @@ CREATE TABLE `player` (
`parallax` tinyint(1) DEFAULT '8',
`byond_date` DATE DEFAULT NULL,
`2fa_status` ENUM('DISABLED','ENABLED_IP','ENABLED_ALWAYS') NOT NULL DEFAULT 'DISABLED' 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/28-29.sql b/SQL/updates/28-29.sql
new file mode 100644
index 00000000000..bcda03e6cf1
--- /dev/null
+++ b/SQL/updates/28-29.sql
@@ -0,0 +1,4 @@
+# Updates DB from 28 to 29 -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/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 7e0941d3e65..ea1cb9449ee 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -24,6 +24,9 @@
#define DROPDEL 16384 // When dropped, it calls qdel on itself
+///Whether or not this atom shows screentips when hovered over
+#define NO_SCREENTIPS 32768
+
/* 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 5d3dbac9c50..c43360c809f 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -365,7 +365,7 @@
#define INVESTIGATE_BOMB "bombs"
// The SQL version required by this version of the code
-#define SQL_VERSION 28
+#define SQL_VERSION 29
// Vending machine stuff
#define CAT_NORMAL 1
@@ -499,3 +499,13 @@
/// Waits at a line of code until X is true
#define UNTIL(X) while(!(X)) sleep(world.tick_lag)
+
+/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 8a69c7aa4b3..8d836571086 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -123,6 +123,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 daf7bfe6b52..caf34917cb5 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -97,6 +97,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 c408c1cd7b6..d5f6097df85 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()
@@ -40,7 +41,7 @@
if(hud && hud.mymob && isovermind(hud.mymob))
name = initial(name)
desc = initial(desc)
- ..()
+ return ..()
/obj/screen/blob/JumpToCore/Click()
if(isovermind(usr))
@@ -106,7 +107,7 @@
if(hud && hud.mymob && isovermind(hud.mymob))
name = initial(name)
desc = initial(desc)
- ..()
+ return ..()
/obj/screen/blob/ReadaptChemical/Click()
if(isovermind(usr))
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 9779e306939..242bd2f9439 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -39,6 +39,8 @@
var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
///Assoc list of controller groups, associated with key string group name with value of the plane master controller ref
var/list/atom/movable/plane_master_controller/plane_master_controllers = list()
+ ///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)
@@ -59,6 +61,9 @@
var/atom/movable/plane_master_controller/controller_instance = new mytype(src)
plane_master_controllers[controller_instance.name] = controller_instance
+ screentip_text = new(null, src)
+ static_inventory += screentip_text
+
/datum/hud/Destroy()
if(mymob.hud_used == src)
mymob.hud_used = null
@@ -98,6 +103,7 @@
QDEL_LIST_ASSOC_VAL(plane_master_controllers)
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 a01ea315e58..5b10d3ab944 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -218,6 +218,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)
@@ -356,7 +357,7 @@
var/list/object_overlays = list()
/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..beb8f033b9f
--- /dev/null
+++ b/code/_onclick/hud/screentip.dm
@@ -0,0 +1,18 @@
+/obj/screen/screentip
+ icon = null
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ screen_loc = "TOP,LEFT"
+ maptext_height = 480
+ maptext_width = 480
+ maptext_y = -50
+ 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/game/atoms.dm b/code/game/atoms.dm
index 6c18982600c..31100ba2887 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -1167,6 +1167,21 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
appearance_flags |= PIXEL_SCALE
transform = M
+//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 f918a1708ba..c2403fad5bb 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -707,6 +707,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect
openToolTip(user, src, params, title = name, content = "[desc]", theme = "")
/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 088450b754d..e7d578eec75 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -19,6 +19,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 94bb89d0b6b..ed2e54026e8 100644
--- a/code/game/turfs/simulated/walls_indestructible.dm
+++ b/code/game/turfs/simulated/walls_indestructible.dm
@@ -84,6 +84,7 @@
icon = 'config/title_screens/images/blank.png'
icon_state = ""
layer = FLY_LAYER
+ flags = NO_SCREENTIPS
/turf/simulated/wall/indestructible/uranium
icon = 'icons/turf/walls/uranium_wall.dmi'
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index b943673c14b..891704fe9b5 100644
--- a/code/game/turfs/space/space.dm
+++ b/code/game/turfs/space/space.dm
@@ -17,6 +17,7 @@
var/destination_x
var/destination_y
plane = PLANE_SPACE
+ flags = NO_SCREENTIPS
/turf/space/Initialize(mapload)
SHOULD_CALL_PARENT(FALSE)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 55a226d1944..7849995a0bc 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -791,9 +791,9 @@
winset(src, "rpane.rulesb", "background-color=#40628a;text-color=#FFFFFF")
winset(src, "rpane.githubb", "background-color=#40628a;text-color=#FFFFFF")
winset(src, "rpane.webmap", "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")
@@ -824,9 +824,9 @@
winset(src, "rpane.rulesb", "background-color=none;text-color=#000000")
winset(src, "rpane.githubb", "background-color=none;text-color=#000000")
winset(src, "rpane.webmap", "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/login_processing/10-load_preferences.dm b/code/modules/client/login_processing/10-load_preferences.dm
index ed4f947b40d..6cc42fb67ce 100644
--- a/code/modules/client/login_processing/10-load_preferences.dm
+++ b/code/modules/client/login_processing/10-load_preferences.dm
@@ -19,7 +19,9 @@
atklog,
fuid,
parallax,
- 2fa_status
+ 2fa_status,
+ screentip_mode,
+ screentip_color
FROM player
WHERE ckey=:ckey"}, list(
"ckey" = C.ckey
diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm
index d9f63ec2b3f..fe227081368 100644
--- a/code/modules/client/preference/link_processing.dm
+++ b/code/modules/client/preference/link_processing.dm
@@ -372,7 +372,7 @@
var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in valid_hairstyles
if(new_h_style)
active_character.h_style = new_h_style
-
+
if("h_grad_style")
var/result = input(user, "Choose your character's hair gradient style:", "Character Preference") as null|anything in GLOB.hair_gradients_list
if(result)
@@ -1047,6 +1047,16 @@
if(parent && parent.mob && parent.mob.hud_used)
parent.mob.hud_used.update_parallax_pref()
+ 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("edit_2fa")
// Do this async so we arent holding up a topic() call
INVOKE_ASYNC(user.client, /client.proc/edit_2fa)
diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm
index 3af6756a0f5..d3d1610b248 100644
--- a/code/modules/client/preference/preferences.dm
+++ b/code/modules/client/preference/preferences.dm
@@ -99,6 +99,10 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
var/parallax = PARALLAX_HIGH
/// 2FA status
var/_2fa_status = _2FA_DISABLED
+ ///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"
/// Did we load successfully?
var/successful_load = FALSE
/// Have we loaded characters already?
@@ -389,6 +393,8 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
else
dat += "High"
dat += "
"
+ dat += "Set screentip mode: [(screentip_mode == 0) ? "Disabled" : "[screentip_mode]px"]
"
+ dat += "Screentip color: Change
"
dat += "Play Admin MIDIs: [(sound & SOUND_MIDI) ? "Yes" : "No"]
"
dat += "Play Lobby Music: [(sound & SOUND_LOBBY) ? "Yes" : "No"]
"
dat += "Randomized Character Slot: [toggles2 & PREFTOGGLE_2_RANDOMSLOT ? "Yes" : "No"]
"
diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm
index 923a430f9dc..dae1c279704 100644
--- a/code/modules/client/preference/preferences_mysql.dm
+++ b/code/modules/client/preference/preferences_mysql.dm
@@ -21,6 +21,8 @@
fuid = text2num(query.item[15])
parallax = text2num(query.item[16])
_2fa_status = query.item[17]
+ screentip_mode = query.item[18]
+ screentip_color = query.item[19]
//Sanitize
ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor))
@@ -37,6 +39,8 @@
atklog = sanitize_integer(atklog, 0, 100, initial(atklog))
fuid = sanitize_integer(fuid, 0, 10000000, initial(fuid))
parallax = sanitize_integer(parallax, 0, 16, initial(parallax))
+ screentip_mode = sanitize_text(screentip_mode, initial(screentip_mode))
+ screentip_color = sanitize_hexcolor(screentip_color, initial(screentip_color))
return TRUE
/datum/preferences/proc/save_preferences(client/C)
@@ -68,7 +72,9 @@
lastchangelog=:lastchangelog,
clientfps=:clientfps,
parallax=:parallax,
- 2fa_status=:_2fa_status
+ 2fa_status=:_2fa_status,
+ screentip_mode=:screentip_mode,
+ screentip_color=:screentip_color
WHERE ckey=:ckey"}, list(
// OH GOD THE PARAMETERS
"ooccolour" = ooccolor,
@@ -87,6 +93,8 @@
"clientfps" = clientfps,
"parallax" = parallax,
"_2fa_status" = _2fa_status,
+ "screentip_mode" = screentip_mode,
+ "screentip_color" = screentip_color,
"ckey" = C.ckey,
)
)
diff --git a/config/example/config.toml b/config/example/config.toml
index 6c4cf8b52ce..5d6595ffcec 100644
--- a/config/example/config.toml
+++ b/config/example/config.toml
@@ -141,7 +141,7 @@ ipc_screens = [
# Enable/disable the database on a whole
sql_enabled = false
# SQL version. If this is a mismatch, round start will be delayed
-sql_version = 28
+sql_version = 29
# SQL server address. Can be an IP or DNS name
sql_address = "127.0.0.1"
# SQL server port
diff --git a/interface/skin.dmf b/interface/skin.dmf
index e4850ea368a..49bcc9919c6 100644
--- a/interface/skin.dmf
+++ b/interface/skin.dmf
@@ -1,5 +1,6 @@
macro "default"
+
menu "menu"
elem
name = "&File"
@@ -144,11 +145,12 @@ window "mainwindow"
type = MAIN
pos = 0,0
size = 640x440
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
is-default = true
saved-params = "pos;size;is-minimized;is-maximized"
title = "Paradise Station 13"
+ statusbar = false
is-maximized = true
icon = 'icons\\paradise.png'
macro = "default"
@@ -157,56 +159,26 @@ window "mainwindow"
type = BROWSER
pos = 0,0
size = 200x200
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
is-visible = false
saved-params = ""
elem "mainvsplit"
type = CHILD
pos = 3,0
- size = 634x416
+ size = 634x440
anchor1 = 0,0
anchor2 = 100,100
saved-params = "splitter"
left = "mapwindow"
right = "rpane"
is-vert = true
- elem "input"
- type = INPUT
- pos = 3,420
- size = 477x20
- anchor1 = 0,100
- anchor2 = 100,100
- background-color = #d3b5b5
- is-default = true
- border = sunken
- saved-params = "command"
- elem "saybutton"
- type = BUTTON
- pos = 480,420
- size = 80x20
- anchor1 = 100,100
- anchor2 = none
- saved-params = "is-checked"
- text = "Chat"
- 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 = 560,420
- size = 80x20
- anchor1 = 100,100
- anchor2 = none
- saved-params = "is-checked"
- 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\""
- button-type = pushbox
elem "tooltip"
type = BROWSER
pos = 0,0
size = 999x999
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
is-visible = false
saved-params = ""
@@ -215,11 +187,12 @@ window "mapwindow"
type = MAIN
pos = 0,0
size = 640x480
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
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
@@ -231,38 +204,85 @@ window "mapwindow"
text-color = none
is-default = true
saved-params = "icon-size"
- 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 {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; }"
+ 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; }"
+ elem "status_bar"
+ type = LABEL
+ pos = 0,464
+ size = 280x16
+ anchor1 = 0,100
+ anchor2 = -1,-1
+ text-color = #ffffff
+ background-color = #222222
+ is-visible = true
+ border = line
+ saved-params = ""
+ text = ""
+ align = left
window "outputwindow"
elem "outputwindow"
type = MAIN
- pos = 0,0
+ pos = 281,0
size = 640x480
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
+ background-color = none
saved-params = "pos;size;is-minimized;is-maximized"
title = "Output window"
can-close = false
can-minimize = false
is-pane = true
+ outer-size = 656x538
+ inner-size = 640x499
+ elem "input"
+ type = INPUT
+ pos = 2,460
+ size = 517x20
+ anchor1 = 0,100
+ anchor2 = 100,100
+ background-color = #d3b5b5
+ is-default = true
+ border = sunken
+ saved-params = "command"
+ elem "saybutton"
+ type = BUTTON
+ pos = 480,460
+ size = 80x19
+ anchor1 = 100,100
+ anchor2 = -1,-1
+ background-color = none
+ saved-params = "is-checked"
+ 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 = 559,460
+ size = 80x19
+ anchor1 = 100,100
+ anchor2 = -1,-1
+ background-color = none
+ 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\""
+ button-type = pushbox
elem "browseroutput"
type = BROWSER
pos = 0,0
- size = 640x480
+ size = 640x456
anchor1 = 0,0
anchor2 = 100,100
background-color = #ffffff
is-disabled = true
saved-params = ""
- auto-format = false
window "rpane"
elem "rpane"
type = MAIN
pos = 0,0
size = 640x480
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true
elem "rpanewindow"
@@ -278,8 +298,8 @@ window "rpane"
type = BUTTON
pos = 0,7
size = 60x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
is-visible = false
saved-params = "is-checked"
text = "Text"
@@ -300,8 +320,8 @@ window "rpane"
type = BUTTON
pos = 64,7
size = 60x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
is-visible = false
saved-params = "is-checked"
text = "Info"
@@ -312,8 +332,8 @@ window "rpane"
type = BUTTON
pos = 150,7
size = 50x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "is-checked"
text = "Wiki"
command = "wiki"
@@ -321,8 +341,8 @@ window "rpane"
type = BUTTON
pos = 202,7
size = 50x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "is-checked"
text = "Forum"
command = "forum"
@@ -330,8 +350,8 @@ window "rpane"
type = BUTTON
pos = 254,7
size = 50x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "is-checked"
text = "Rules"
command = "rules"
@@ -339,8 +359,8 @@ window "rpane"
type = BUTTON
pos = 306,7
size = 50x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "is-checked"
text = "GitHub"
command = "github"
@@ -348,8 +368,8 @@ window "rpane"
type = BUTTON
pos = 415,7
size = 67x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "is-checked"
text = "Changelog"
command = "Changelog"
@@ -357,8 +377,8 @@ window "rpane"
type = BUTTON
pos = 487,7
size = 60x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
font-style = "bold"
text-color = #ffffff
background-color = #7289da
@@ -369,8 +389,8 @@ window "rpane"
type = BUTTON
pos = 552,7
size = 60x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
font-style = "bold"
text-color = #ffffff
background-color = #ff4500
@@ -381,8 +401,8 @@ window "rpane"
type = BUTTON
pos = 617,7
size = 60x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
font-style = "bold"
text-color = #ffffff
background-color = #008000
@@ -393,8 +413,8 @@ window "rpane"
type = BUTTON
pos = 561,7
size = 60x16
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
is-visible = false
saved-params = "is-checked"
text = "Browser"
@@ -407,8 +427,8 @@ window "browserwindow"
type = MAIN
pos = 0,0
size = 640x480
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "pos;size;is-minimized;is-maximized"
title = "Browser"
is-pane = true
@@ -428,8 +448,8 @@ window "infowindow"
type = MAIN
pos = 0,0
size = 640x480
- anchor1 = none
- anchor2 = none
+ anchor1 = -1,-1
+ anchor2 = -1,-1
saved-params = "pos;size;is-minimized;is-maximized"
title = "Info"
is-pane = true
diff --git a/paradise.dme b/paradise.dme
index b54d8813b0e..fca4ac6d8a3 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -186,6 +186,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\controllers\controller.dm"