From 62c6da56cb88e43c0d87fe2cdfd490f0a7cb8472 Mon Sep 17 00:00:00 2001
From: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date: Tue, 27 Jun 2023 15:46:16 -0700
Subject: [PATCH] Maptext 2023: I can see clearly now (#76356)
## About The Pull Request
We needed to replace our maptext font. Closes
https://github.com/tgstation/tgstation/issues/73002
Replaced with a pair of new fonts, made some improvements and fixes
while we're at it.
- Two new maptext fonts: Grand9K and TinyUnicode
- These two scale cleanly with BYOND icon sizes, so no antialiasing of
already tiny fonts making it look bad when enlarged on screen
- Fixed size fonts now have metrics to be used properly on overlays
(such as status display) where a client (a requirement for MeasureText)
is not feasible
- VCR OSD Mono still here, usable as a variable size font with larger
text
- Synchronizes status display scrolling speed between lines
- Fixed special maptexts for yelling, clown, redtext, greentext
https://github.com/tgstation/tgstation/assets/83487515/7dbaf1d1-f1d5-46ff-8903-d95cab059ed8
## Why It's Good For The Game
Maptext looks like crap if you're one of the players who no longer have
the old font. Even if you do have Small Fonts, this looks better.
## Changelog
:cl: LT3
refactor: Refactored maptext (those floating words)
fix: Fixed special chat bubbles for yelling, clown, redtext, greentext
fix: Fixed alignment of status display text
code: Status displays now synchronize their message lines when scrolling
/:cl:
---
code/__DEFINES/fonts.dm | 8 +
code/__DEFINES/text.dm | 11 +-
code/datums/chatmessage.dm | 8 +-
code/game/atoms.dm | 10 +-
code/game/machinery/status_display.dm | 94 +++----
.../elevator/elevator_indicator.dm | 10 +-
icons/obj/status_display.dmi | Bin 26857 -> 26869 bytes
interface/fonts.dm | 10 -
interface/fonts/Grand9K_Pixel.ttf | Bin 0 -> 22108 bytes
interface/fonts/TinyUnicode.ttf | Bin 0 -> 23280 bytes
interface/{ => fonts}/VCR_OSD_Mono.ttf | Bin
interface/fonts/fonts_datum.dm | 78 ++++++
interface/fonts/grand_9k.dm | 253 ++++++++++++++++++
interface/fonts/license.txt | 8 +
interface/fonts/tiny_unicode.dm | 253 ++++++++++++++++++
interface/fonts/vcr_osd_mono.dm | 3 +
interface/license.txt | 2 -
interface/skin.dmf | 6 +-
tgstation.dme | 6 +-
19 files changed, 673 insertions(+), 87 deletions(-)
delete mode 100644 interface/fonts.dm
create mode 100644 interface/fonts/Grand9K_Pixel.ttf
create mode 100644 interface/fonts/TinyUnicode.ttf
rename interface/{ => fonts}/VCR_OSD_Mono.ttf (100%)
create mode 100644 interface/fonts/fonts_datum.dm
create mode 100644 interface/fonts/grand_9k.dm
create mode 100644 interface/fonts/license.txt
create mode 100644 interface/fonts/tiny_unicode.dm
create mode 100644 interface/fonts/vcr_osd_mono.dm
delete mode 100644 interface/license.txt
diff --git a/code/__DEFINES/fonts.dm b/code/__DEFINES/fonts.dm
index 6b00195f59b..e3e2e7ab7f6 100644
--- a/code/__DEFINES/fonts.dm
+++ b/code/__DEFINES/fonts.dm
@@ -14,3 +14,11 @@
/// Emoji icon set
#define EMOJI_SET 'icons/ui_icons/emoji/emoji.dmi'
+
+// Font metrics bitfield
+/// Include leading A width and trailing C width in GetWidth() or in DrawText()
+#define INCLUDE_AC (1<<0)
+
+DEFINE_BITFIELD(font_flags, list(
+ "INCLUDE_AC" = INCLUDE_AC,
+))
diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm
index 3cffec0521f..3ac499c7d93 100644
--- a/code/__DEFINES/text.dm
+++ b/code/__DEFINES/text.dm
@@ -4,9 +4,18 @@
/// Prepares a text to be used for maptext. Use this so it doesn't look hideous.
#define MAPTEXT(text) {"[##text]"}
-/// Prepares a text to be used for maptext, using a font that can handle larger text better.
+/// Prepares a text to be used for maptext, using a variable size font.
+/// Variable size font. More flexible but doesn't scale pixel perfect to BYOND icon resolutions. (May be blurry.) Can use any size in pt or px.
#define MAPTEXT_VCR_OSD_MONO(text) {"[##text]"}
+/// Prepares a text to be used for maptext using a pixel font. Cleaner but less size choices.
+/// Standard size (ie: normal runechat) Use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing
+#define MAPTEXT_GRAND9K(text) {"[##text]"}
+
+/// Prepares a text to be used for maptext using a pixel font. Cleaner but less size choices.
+/// Small size. (ie: whisper runechat) Use only size pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+#define MAPTEXT_TINY_UNICODE(text) {"[##text]"}
+
/// Macro from Lummox used to get height from a MeasureText proc.
/// resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
#define WXH_TO_HEIGHT(measurement, return_var) \
diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm
index 3debadbda70..83494ef5361 100644
--- a/code/datums/chatmessage.dm
+++ b/code/datums/chatmessage.dm
@@ -13,7 +13,7 @@
/// Approximate height in pixels of an 'average' line, used for height decay
#define CHAT_MESSAGE_APPROX_LHEIGHT 11
/// Max width of chat message in pixels
-#define CHAT_MESSAGE_WIDTH 96
+#define CHAT_MESSAGE_WIDTH 112
/// The dimensions of the chat message icons
#define CHAT_MESSAGE_ICON_SIZE 9
@@ -145,6 +145,10 @@
if (!ismob(target))
extra_classes |= "small"
+ // Why are you yelling?
+ if(copytext_char(text, -2) == "!!")
+ extra_classes |= SPAN_YELL
+
var/list/prefixes
// Append radio icon if from a virtual speaker
@@ -171,7 +175,7 @@
var/tgt_color = extra_classes.Find("italics") ? target.chat_color_darkened : target.chat_color
// Approximate text height
- var/complete_text = ""
+ var/complete_text = ""
var/mheight
WXH_TO_HEIGHT(owned_by.MeasureText(complete_text, null, CHAT_MESSAGE_WIDTH), mheight)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index d492272a612..d04e4df3058 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -2035,7 +2035,7 @@
active_hud.screentip_text.maptext = ""
return
- active_hud.screentip_text.maptext_y = 0
+ active_hud.screentip_text.maptext_y = 16 // 16px lines us up with the action buttons top left corner
var/lmb_rmb_line = ""
var/ctrl_lmb_ctrl_rmb_line = ""
var/alt_lmb_alt_rmb_line = ""
@@ -2102,15 +2102,15 @@
extra_lines++
if(extra_lines)
- extra_context = "
[lmb_rmb_line][ctrl_lmb_ctrl_rmb_line][alt_lmb_alt_rmb_line][shift_lmb_ctrl_shift_lmb_line]"
- //first extra line pushes atom name line up 10px, subsequent lines push it up 9px, this offsets that and keeps the first line in the same place
- active_hud.screentip_text.maptext_y = -10 + (extra_lines - 1) * -9
+ extra_context = "
[lmb_rmb_line][ctrl_lmb_ctrl_rmb_line][alt_lmb_alt_rmb_line][shift_lmb_ctrl_shift_lmb_line]"
+ //first extra line pushes atom name line up 11px, subsequent lines push it up 8px, this offsets that and keeps the first line in the same place
+ active_hud.screentip_text.maptext_y = 5 + (extra_lines - 1) * -8
if (screentips_enabled == SCREENTIP_PREFERENCE_CONTEXT_ONLY && extra_context == "")
active_hud.screentip_text.maptext = ""
else
//We inline a MAPTEXT() here, because there's no good way to statically add to a string like this
- active_hud.screentip_text.maptext = "[name][extra_context]"
+ active_hud.screentip_text.maptext = "[name][extra_context]"
/// Gets a merger datum representing the connected blob of objects in the allowed_types argument
/atom/proc/GetMergeGroup(id, list/allowed_types)
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index 0d697d35111..4859d7b422d 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -1,11 +1,15 @@
// Status display
-// (formerly Countdown timer display)
-#define MAX_STATIC_WIDTH 25
-#define FONT_STYLE "5pt 'Small Fonts'"
+#define MAX_STATIC_WIDTH 22
+#define FONT_STYLE "12pt 'TinyUnicode'"
#define SCROLL_RATE (0.04 SECONDS) // time per pixel
-#define LINE1_Y -8
-#define LINE2_Y -15
+#define SCROLL_PADDING 2 // how many pixels we chop to make a smooth loop
+#define LINE1_X 1
+#define LINE1_Y -4
+#define LINE2_X 1
+#define LINE2_Y -11
+#define STATUS_DISPLAY_FONT_DATUM /datum/font/tiny_unicode/size_12pt
+
/// Status display which can show images and scrolling text.
/obj/machinery/status_display
name = "status display"
@@ -124,14 +128,14 @@
* * message - the new message text.
* Returns new /obj/effect/overlay/status_display_text or null if unchanged.
*/
-/obj/machinery/status_display/proc/update_message(obj/effect/overlay/status_display_text/overlay, line_y, message, x_offset)
+/obj/machinery/status_display/proc/update_message(obj/effect/overlay/status_display_text/overlay, line_y, message, x_offset, line_pair)
if(overlay && message == overlay.message)
return null
if(overlay)
qdel(overlay)
- var/obj/effect/overlay/status_display_text/new_status_display_text = new(src, line_y, message, text_color, header_text_color, x_offset)
+ var/obj/effect/overlay/status_display_text/new_status_display_text = new(src, line_y, message, text_color, header_text_color, x_offset, line_pair)
// Draw our object visually "in front" of this display, taking advantage of sidemap
new_status_display_text.pixel_y = -32
new_status_display_text.pixel_z = 32
@@ -149,7 +153,7 @@
return
set_light(1.5, 0.7, LIGHT_COLOR_BLUE) // blue light
-/obj/machinery/status_display/update_overlays()
+/obj/machinery/status_display/update_overlays(updates)
. = ..()
if(machine_stat & (NOPOWER|BROKEN))
@@ -167,10 +171,18 @@
if(current_picture == AI_DISPLAY_DONT_GLOW) // If the thing's off, don't display the emissive yeah?
return .
else
- var/overlay = update_message(message1_overlay, LINE1_Y, message1)
+ var/line1_metric
+ var/line2_metric
+ var/line_pair
+ var/datum/font/display_font = new STATUS_DISPLAY_FONT_DATUM()
+ line1_metric = display_font.get_metrics(message1)
+ line2_metric = display_font.get_metrics(message2)
+ line_pair = (line1_metric > line2_metric ? line1_metric : line2_metric)
+
+ var/overlay = update_message(message1_overlay, LINE1_Y, message1, LINE1_X, line_pair)
if(overlay)
message1_overlay = overlay
- overlay = update_message(message2_overlay, LINE2_Y, message2)
+ overlay = update_message(message2_overlay, LINE2_Y, message2, LINE2_X, line_pair)
if(overlay)
message2_overlay = overlay
@@ -245,39 +257,23 @@
// If the line is short enough to not marquee, and it matches this, it's a header.
var/static/regex/header_regex = regex("^-.*-$")
- /// Width of each character, including kerning gap afterwards.
- /// We don't use rich text or anything fancy, so we can bake these values.
- var/static/list/char_widths = list(
- // ! " # $ % & ' ( ) * + , - . /
- 1, 2, 3, 5, 4, 5, 5, 2, 3, 3, 3, 4, 2, 3, 2, 3,
- // 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
- 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 3, 3, 3, 3,
- // @ A B C D E F G H I J K L M N O
- 7, 5, 5, 5, 5, 4, 4, 5, 5, 2, 4, 5, 4, 6, 5, 5,
- // P Q R S T U V W X Y Z [ \ ] ^ _
- 5, 5, 5, 5, 4, 5, 4, 6, 4, 4, 4, 3, 3, 3, 4, 4,
- // ` a b c d e f g h i j k l m n o
- 3, 5, 5, 5, 5, 4, 4, 5, 5, 2, 4, 5, 4, 6, 5, 5,
- // p q r s t u v w x y z { | } ~
- 5, 5, 5, 5, 4, 5, 4, 6, 4, 4, 4, 3, 2, 3, 4,
- )
-
-/obj/effect/overlay/status_display_text/Initialize(mapload, yoffset, line, text_color, header_text_color, xoffset = 0)
+/obj/effect/overlay/status_display_text/Initialize(mapload, yoffset, line, text_color, header_text_color, xoffset = 0, line_pair)
. = ..()
maptext_y = yoffset
message = line
- var/line_width = measure_width(line)
+ var/datum/font/display_font = new STATUS_DISPLAY_FONT_DATUM()
+ var/line_width = display_font.get_metrics(line)
if(line_width > MAX_STATIC_WIDTH)
// Marquee text
- var/marquee_message = "[line] - [line] - [line]"
+ var/marquee_message = "[line] [line] [line]"
// Width of full content. Must of these is never revealed unless the user inputted a single character.
- var/full_marquee_width = measure_width(marquee_message)
+ var/full_marquee_width = display_font.get_metrics("[marquee_message] ")
// We loop after only this much has passed.
- var/looping_marquee_width = measure_width("[line] - ")
+ var/looping_marquee_width = (display_font.get_metrics("[line] ]") - SCROLL_PADDING)
maptext = generate_text(marquee_message, center = FALSE, text_color = text_color)
maptext_width = full_marquee_width
@@ -287,45 +283,24 @@
add_filter("mask", 1, alpha_mask_filter(icon = icon(icon, "outline")))
// Scroll.
- var/time = looping_marquee_width * SCROLL_RATE
- animate(src, maptext_x = -looping_marquee_width, time = time, loop = -1)
- animate(maptext_x = 0, time = 0)
+ var/time = line_pair * SCROLL_RATE
+ animate(src, maptext_x = (-looping_marquee_width) + MAX_STATIC_WIDTH, time = time, loop = -1)
+ animate(maptext_x = MAX_STATIC_WIDTH, time = 0)
else
// Centered text
var/color = header_regex.Find(line) ? header_text_color : text_color
maptext = generate_text(line, center = TRUE, text_color = color)
maptext_x = xoffset //Defaults to 0, this would be centered unless overided
-/**
- * A hyper-streamlined version of MeasureText that doesn't support different fonts, rich formatting, or multiline.
- * But it also doesn't require a client.
- *
- * Returns the width in pixels
- *
- * Arguments:
- * * text - the text to measure
- */
-/obj/effect/overlay/status_display_text/proc/measure_width(text)
- var/width = 0
- for(var/text_idx in 1 to length(text))
- var/ascii = text2ascii(text, text_idx)
- if(!(ascii in 0x20 to 0x7E))
- // So we can't possibly runtime, even though the input should be in range already.
- width += 3
- continue
- width += char_widths[ascii - 0x1F]
-
- return width
-
/**
* Generate the actual maptext.
* Arguments:
* * text - the text to display
- * * center - center the text if TRUE, otherwise left-align
+ * * center - center the text if TRUE, otherwise right-align (the direction the text is coming from)
* * text_color - the text color
*/
/obj/effect/overlay/status_display_text/proc/generate_text(text, center, text_color)
- return {"
[text]
"}
+ return {"[text]
"}
/// Evac display which shows shuttle timer or message set by Command.
/obj/machinery/status_display/evac
@@ -576,5 +551,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/status_display/ai, 32)
#undef MAX_STATIC_WIDTH
#undef FONT_STYLE
#undef SCROLL_RATE
+#undef LINE1_X
#undef LINE1_Y
+#undef LINE2_X
#undef LINE2_Y
+#undef STATUS_DISPLAY_FONT_DATUM
diff --git a/code/modules/industrial_lift/elevator/elevator_indicator.dm b/code/modules/industrial_lift/elevator/elevator_indicator.dm
index 781ff35981b..f0aec0c2217 100644
--- a/code/modules/industrial_lift/elevator/elevator_indicator.dm
+++ b/code/modules/industrial_lift/elevator/elevator_indicator.dm
@@ -19,10 +19,10 @@
light_color = LIGHT_COLOR_DARK_BLUE
luminosity = 1
- maptext_x = 17
- maptext_y = 21
- maptext_width = 4
- maptext_height = 8
+ maptext_x = 18
+ maptext_y = 20
+ maptext_width = 8
+ maptext_height = 16
/// What specific_lift_id do we link with?
var/linked_elevator_id
@@ -150,7 +150,7 @@
return
set_light(l_on = TRUE)
- maptext = {"[current_lift_floor]
"}
+ maptext = MAPTEXT_TINY_UNICODE("[current_lift_floor]
")
/obj/machinery/lift_indicator/update_overlays()
. = ..()
diff --git a/icons/obj/status_display.dmi b/icons/obj/status_display.dmi
index 6833e9ff244f2708f41c61e3282c34bc1c4d4e37..76d20addff766cee6d11128eacedb5190d45fab3 100644
GIT binary patch
literal 26869
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
O9CmQ=LtLNi8WQp}<;^f+nCaGQ7@
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
literal 26857
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