Converts the new span_ procs to macros, fixing a few oversights/errors along the way (#59685)

This is a partial re-implementation of #59645

oranges has expressed a desire for the span_ procs to instead be macros.

I agree. Even though it's a small micro-optimisation, a well contained macro can be self-linting. I've already caught one edge case thanks to this in launch_pad.dm

Similarly, there was an edge case where a [ was escaped inappropriately (that errored out) in watercloset.dm and a case where a ] that should probably have been escaped actually wasn't in robot_defense.dm

I have opted to make an exception to the ALLCAPS convention for these macros.

I have guaraded these macros in parenthesis. In doing so, additional error states can be captured as part of the build process as malformed inputs will then cause errors and prompt further investigation.
This commit is contained in:
Timberpoes
2021-06-19 18:39:00 -03:00
committed by GitHub
parent 2806d97f04
commit 1a0e64e890
6 changed files with 118 additions and 232 deletions
+114
View File
@@ -0,0 +1,114 @@
// Sorted alphabetically
#define span_abductor(str) ("<span class='abductor'>" + str + "</span>")
#define span_admin(str) ("<span class='admin'>" + str + "</span>")
#define span_adminhelp(str) ("<span class='adminhelp'>" + str + "</span>")
#define span_adminnotice(str) ("<span class='adminnotice'>" + str + "</span>")
#define span_adminobserverooc(str) ("<span class='adminobserverooc'>" + str + "</span>")
#define span_adminooc(str) ("<span class='adminooc'>" + str + "</span>")
#define span_adminsay(str) ("<span class='adminsay'>" + str + "</span>")
#define span_aiprivradio(str) ("<span class='aiprivradio'>" + str + "</span>")
#define span_alert(str) ("<span class='alert'>" + str + "</span>")
#define span_alertalien(str) ("<span class='alertalien'>" + str + "</span>")
#define span_alertsyndie(str) ("<span class='alertsyndie'>" + str + "</span>")
#define span_alertwarning(str) ("<span class='alertwarning'>" + str + "</span>")
#define span_alien(str) ("<span class='alien'>" + str + "</span>")
#define span_announce(str) ("<span class='announce'>" + str + "</span>")
#define span_big(str) ("<span class='big'>" + str + "</span>")
#define span_bigicon(str) ("<span class='bigicon'>" + str + "</span>")
#define span_binarysay(str) ("<span class='binarysay'>" + str + "</span>")
#define span_blue(str) ("<span class='blue'>" + str + "</span>")
#define span_blueteamradio(str) ("<span class='blueteamradio'>" + str + "</span>")
#define span_bold(str) ("<span class='bold'>" + str + "</span>")
#define span_boldannounce(str) ("<span class='boldannounce'>" + str + "</span>")
#define span_boldnotice(str) ("<span class='boldnotice'>" + str + "</span>")
#define span_boldwarning(str) ("<span class='boldwarning'>" + str + "</span>")
#define span_centcomradio(str) ("<span class='centcomradio'>" + str + "</span>")
#define span_changeling(str) ("<span class='changeling'>" + str + "</span>")
#define span_clown(str) ("<span class='clown'>" + str + "</span>")
#define span_colossus(str) ("<span class='colossus'>" + str + "</span>")
#define span_command_headset(str) ("<span class='command_headset'>" + str + "</span>")
#define span_comradio(str) ("<span class='comradio'>" + str + "</span>")
#define span_cult(str) ("<span class='cult'>" + str + "</span>")
#define span_cultbold(str) ("<span class='cultbold'>" + str + "</span>")
#define span_cultboldtalic(str) ("<span class='cultboldtalic'>" + str + "</span>")
#define span_cultitalic(str) ("<span class='cultitalic'>" + str + "</span>")
#define span_cultlarge(str) ("<span class='cultlarge'>" + str + "</span>")
#define span_danger(str) ("<span class='danger'>" + str + "</span>")
#define span_deadsay(str) ("<span class='deadsay'>" + str + "</span>")
#define span_deconversion_message(str) ("<span class='deconversion_message'>" + str + "</span>")
#define span_drone(str) ("<span class='drone'>" + str + "</span>")
#define span_engradio(str) ("<span class='engradio'>" + str + "</span>")
#define span_extremelybig(str) ("<span class='extremelybig'>" + str + "</span>")
#define span_ghostalert(str) ("<span class='ghostalert'>" + str + "</span>")
#define span_green(str) ("<span class='green'>" + str + "</span>")
#define span_greenannounce(str) ("<span class='greenannounce'>" + str + "</span>")
#define span_greenteamradio(str) ("<span class='greenteamradio'>" + str + "</span>")
#define span_greentext(str) ("<span class='greentext'>" + str + "</span>")
#define span_hear(str) ("<span class='hear'>" + str + "</span>")
#define span_hidden(str) ("<span class='hidden'>" + str + "</span>")
#define span_hierophant(str) ("<span class='hierophant'>" + str + "</span>")
#define span_hierophant_warning(str) ("<span class='hierophant_warning'>" + str + "</span>")
#define span_highlight(str) ("<span class='highlight'>" + str + "</span>")
#define span_his_grace(str) ("<span class='his_grace'>" + str + "</span>")
#define span_holoparasite(str) ("<span class='holoparasite'>" + str + "</span>")
#define span_hypnophrase(str) ("<span class='hypnophrase'>" + str + "</span>")
#define span_icon(str) ("<span class='icon'>" + str + "</span>")
#define span_info(str) ("<span class='info'>" + str + "</span>")
#define span_interface(str) ("<span class='interface'>" + str + "</span>")
#define span_looc(str) ("<span class='looc'>" + str + "</span>")
#define span_medal(str) ("<span class='medal'>" + str + "</span>")
#define span_medradio(str) ("<span class='medradio'>" + str + "</span>")
#define span_memo(str) ("<span class='memo'>" + str + "</span>")
#define span_memoedit(str) ("<span class='memoedit'>" + str + "</span>")
#define span_mind_control(str) ("<span class='mind_control'>" + str + "</span>")
#define span_minorannounce(str) ("<span class='minorannounce'>" + str + "</span>")
#define span_monkey(str) ("<span class='monkey'>" + str + "</span>")
#define span_monkeyhive(str) ("<span class='monkeyhive'>" + str + "</span>")
#define span_monkeylead(str) ("<span class='monkeylead'>" + str + "</span>")
#define span_name(str) ("<span class='name'>" + str + "</span>")
#define span_narsie(str) ("<span class='narsie'>" + str + "</span>")
#define span_narsiesmall(str) ("<span class='narsiesmall'>" + str + "</span>")
#define span_nicegreen(str) ("<span class='nicegreen'>" + str + "</span>")
#define span_notice(str) ("<span class='notice'>" + str + "</span>")
#define span_noticealien(str) ("<span class='noticealien'>" + str + "</span>")
#define span_ooc(str) ("<span class='ooc'>" + str + "</span>")
#define span_papyrus(str) ("<span class='papyrus'>" + str + "</span>")
#define span_phobia(str) ("<span class='phobia'>" + str + "</span>")
#define span_prefix(str) ("<span class='prefix'>" + str + "</span>")
#define span_purple(str) ("<span class='purple'>" + str + "</span>")
#define span_radio(str) ("<span class='radio'>" + str + "</span>")
#define span_reallybig(str) ("<span class='reallybig'>" + str + "</span>")
#define span_red(str) ("<span class='red'>" + str + "</span>")
#define span_redteamradio(str) ("<span class='redteamradio'>" + str + "</span>")
#define span_redtext(str) ("<span class='redtext'>" + str + "</span>")
#define span_resonate(str) ("<span class='resonate'>" + str + "</span>")
#define span_revenbignotice(str) ("<span class='revenbignotice'>" + str + "</span>")
#define span_revenboldnotice(str) ("<span class='revenboldnotice'>" + str + "</span>")
#define span_revendanger(str) ("<span class='revendanger'>" + str + "</span>")
#define span_revenminor(str) ("<span class='revenminor'>" + str + "</span>")
#define span_revennotice(str) ("<span class='revennotice'>" + str + "</span>")
#define span_revenwarning(str) ("<span class='revenwarning'>" + str + "</span>")
#define span_robot(str) ("<span class='robot'>" + str + "</span>")
#define span_rose(str) ("<span class='rose'>" + str + "</span>")
#define span_sans(str) ("<span class='sans'>" + str + "</span>")
#define span_sciradio(str) ("<span class='sciradio'>" + str + "</span>")
#define span_secradio(str) ("<span class='secradio'>" + str + "</span>")
#define span_servradio(str) ("<span class='servradio'>" + str + "</span>")
#define span_singing(str) ("<span class='singing'>" + str + "</span>")
#define span_slime(str) ("<span class='slime'>" + str + "</span>")
#define span_small(str) ("<span class='small'>" + str + "</span>")
#define span_smallnotice(str) ("<span class='smallnotice'>" + str + "</span>")
#define span_smallnoticeital(str) ("<span class='smallnoticeital'>" + str + "</span>")
#define span_spider(str) ("<span class='spider'>" + str + "</span>")
#define span_suicide(str) ("<span class='suicide'>" + str + "</span>")
#define span_suppradio(str) ("<span class='suppradio'>" + str + "</span>")
#define span_swarmer(str) ("<span class='swarmer'>" + str + "</span>")
#define span_syndradio(str) ("<span class='syndradio'>" + str + "</span>")
#define span_tape_recorder(str) ("<span class='tape_recorder'>" + str + "</span>")
#define span_tinynotice(str) ("<span class='tinynotice'>" + str + "</span>")
#define span_tinynoticeital(str) ("<span class='tinynoticeital'>" + str + "</span>")
#define span_unconscious(str) ("<span class='unconscious'>" + str + "</span>")
#define span_userdanger(str) ("<span class='userdanger'>" + str + "</span>")
#define span_warning(str) ("<span class='warning'>" + str + "</span>")
#define span_yell(str) ("<span class='yell'>" + str + "</span>")
#define span_yellowteamradio(str) ("<span class='yellowteamradio'>" + str + "</span>")
-228
View File
@@ -1,228 +0,0 @@
// Sorted alphabetically
/proc/span_abductor(str)
return "<span class='abductor'>[str]</span>"
/proc/span_admin(str)
return "<span class='admin'>[str]</span>"
/proc/span_adminhelp(str)
return "<span class='adminhelp'>[str]</span>"
/proc/span_adminnotice(str)
return "<span class='adminnotice'>[str]</span>"
/proc/span_adminobserverooc(str)
return "<span class='adminobserverooc'>[str]</span>"
/proc/span_adminooc(str)
return "<span class='adminooc'>[str]</span>"
/proc/span_adminsay(str)
return "<span class='adminsay'>[str]</span>"
/proc/span_aiprivradio(str)
return "<span class='aiprivradio'>[str]</span>"
/proc/span_alert(str)
return "<span class='alert'>[str]</span>"
/proc/span_alertalien(str)
return "<span class='alertalien'>[str]</span>"
/proc/span_alertsyndie(str)
return "<span class='alertsyndie'>[str]</span>"
/proc/span_alertwarning(str)
return "<span class='alertwarning'>[str]</span>"
/proc/span_alien(str)
return "<span class='alien'>[str]</span>"
/proc/span_announce(str)
return "<span class='announce'>[str]</span>"
/proc/span_big(str)
return "<span class='big'>[str]</span>"
/proc/span_bigicon(str)
return "<span class='bigicon'>[str]</span>"
/proc/span_binarysay(str)
return "<span class='binarysay'>[str]</span>"
/proc/span_blue(str)
return "<span class='blue'>[str]</span>"
/proc/span_blueteamradio(str)
return "<span class='blueteamradio'>[str]</span>"
/proc/span_bold(str)
return "<span class='bold'>[str]</span>"
/proc/span_boldannounce(str)
return "<span class='boldannounce'>[str]</span>"
/proc/span_boldnotice(str)
return "<span class='boldnotice'>[str]</span>"
/proc/span_boldwarning(str)
return "<span class='boldwarning'>[str]</span>"
/proc/span_centcomradio(str)
return "<span class='centcomradio'>[str]</span>"
/proc/span_changeling(str)
return "<span class='changeling'>[str]</span>"
/proc/span_clown(str)
return "<span class='clown'>[str]</span>"
/proc/span_colossus(str)
return "<span class='colossus'>[str]</span>"
/proc/span_command_headset(str)
return "<span class='command_headset'>[str]</span>"
/proc/span_comradio(str)
return "<span class='comradio'>[str]</span>"
/proc/span_cult(str)
return "<span class='cult'>[str]</span>"
/proc/span_cultbold(str)
return "<span class='cultbold'>[str]</span>"
/proc/span_cultboldtalic(str)
return "<span class='cultboldtalic'>[str]</span>"
/proc/span_cultitalic(str)
return "<span class='cultitalic'>[str]</span>"
/proc/span_cultlarge(str)
return "<span class='cultlarge'>[str]</span>"
/proc/span_danger(str)
return "<span class='danger'>[str]</span>"
/proc/span_deadsay(str)
return "<span class='deadsay'>[str]</span>"
/proc/span_deconversion_message(str)
return "<span class='deconversion_message'>[str]</span>"
/proc/span_drone(str)
return "<span class='drone'>[str]</span>"
/proc/span_engradio(str)
return "<span class='engradio'>[str]</span>"
/proc/span_extremelybig(str)
return "<span class='extremelybig'>[str]</span>"
/proc/span_ghostalert(str)
return "<span class='ghostalert'>[str]</span>"
/proc/span_green(str)
return "<span class='green'>[str]</span>"
/proc/span_greenannounce(str)
return "<span class='greenannounce'>[str]</span>"
/proc/span_greenteamradio(str)
return "<span class='greenteamradio'>[str]</span>"
/proc/span_greentext(str)
return "<span class='greentext'>[str]</span>"
/proc/span_hear(str)
return "<span class='hear'>[str]</span>"
/proc/span_hidden(str)
return "<span class='hidden'>[str]</span>"
/proc/span_hierophant(str)
return "<span class='hierophant'>[str]</span>"
/proc/span_hierophant_warning(str)
return "<span class='hierophant_warning'>[str]</span>"
/proc/span_highlight(str)
return "<span class='highlight'>[str]</span>"
/proc/span_his_grace(str)
return "<span class='his_grace'>[str]</span>"
/proc/span_holoparasite(str)
return "<span class='holoparasite'>[str]</span>"
/proc/span_hypnophrase(str)
return "<span class='hypnophrase'>[str]</span>"
/proc/span_icon(str)
return "<span class='icon'>[str]</span>"
/proc/span_info(str)
return "<span class='info'>[str]</span>"
/proc/span_interface(str)
return "<span class='interface'>[str]</span>"
/proc/span_looc(str)
return "<span class='looc'>[str]</span>"
/proc/span_medal(str)
return "<span class='medal'>[str]</span>"
/proc/span_medradio(str)
return "<span class='medradio'>[str]</span>"
/proc/span_memo(str)
return "<span class='memo'>[str]</span>"
/proc/span_memoedit(str)
return "<span class='memoedit'>[str]</span>"
/proc/span_mind_control(str)
return "<span class='mind_control'>[str]</span>"
/proc/span_minorannounce(str)
return "<span class='minorannounce'>[str]</span>"
/proc/span_monkey(str)
return "<span class='monkey'>[str]</span>"
/proc/span_monkeyhive(str)
return "<span class='monkeyhive'>[str]</span>"
/proc/span_monkeylead(str)
return "<span class='monkeylead'>[str]</span>"
/proc/span_name(str)
return "<span class='name'>[str]</span>"
/proc/span_narsie(str)
return "<span class='narsie'>[str]</span>"
/proc/span_narsiesmall(str)
return "<span class='narsiesmall'>[str]</span>"
/proc/span_nicegreen(str)
return "<span class='nicegreen'>[str]</span>"
/proc/span_notice(str)
return "<span class='notice'>[str]</span>"
/proc/span_noticealien(str)
return "<span class='noticealien'>[str]</span>"
/proc/span_ooc(str)
return "<span class='ooc'>[str]</span>"
/proc/span_papyrus(str)
return "<span class='papyrus'>[str]</span>"
/proc/span_phobia(str)
return "<span class='phobia'>[str]</span>"
/proc/span_prefix(str)
return "<span class='prefix'>[str]</span>"
/proc/span_purple(str)
return "<span class='purple'>[str]</span>"
/proc/span_radio(str)
return "<span class='radio'>[str]</span>"
/proc/span_reallybig(str)
return "<span class='reallybig'>[str]</span>"
/proc/span_red(str)
return "<span class='red'>[str]</span>"
/proc/span_redteamradio(str)
return "<span class='redteamradio'>[str]</span>"
/proc/span_redtext(str)
return "<span class='redtext'>[str]</span>"
/proc/span_resonate(str)
return "<span class='resonate'>[str]</span>"
/proc/span_revenbignotice(str)
return "<span class='revenbignotice'>[str]</span>"
/proc/span_revenboldnotice(str)
return "<span class='revenboldnotice'>[str]</span>"
/proc/span_revendanger(str)
return "<span class='revendanger'>[str]</span>"
/proc/span_revenminor(str)
return "<span class='revenminor'>[str]</span>"
/proc/span_revennotice(str)
return "<span class='revennotice'>[str]</span>"
/proc/span_revenwarning(str)
return "<span class='revenwarning'>[str]</span>"
/proc/span_robot(str)
return "<span class='robot'>[str]</span>"
/proc/span_rose(str)
return "<span class='rose'>[str]</span>"
/proc/span_sans(str)
return "<span class='sans'>[str]</span>"
/proc/span_sciradio(str)
return "<span class='sciradio'>[str]</span>"
/proc/span_secradio(str)
return "<span class='secradio'>[str]</span>"
/proc/span_servradio(str)
return "<span class='servradio'>[str]</span>"
/proc/span_singing(str)
return "<span class='singing'>[str]</span>"
/proc/span_slime(str)
return "<span class='slime'>[str]</span>"
/proc/span_small(str)
return "<span class='small'>[str]</span>"
/proc/span_smallnotice(str)
return "<span class='smallnotice'>[str]</span>"
/proc/span_smallnoticeital(str)
return "<span class='smallnoticeital'>[str]</span>"
/proc/span_spider(str)
return "<span class='spider'>[str]</span>"
/proc/span_suicide(str)
return "<span class='suicide'>[str]</span>"
/proc/span_suppradio(str)
return "<span class='suppradio'>[str]</span>"
/proc/span_swarmer(str)
return "<span class='swarmer'>[str]</span>"
/proc/span_syndradio(str)
return "<span class='syndradio'>[str]</span>"
/proc/span_tape_recorder(str)
return "<span class='tape_recorder'>[str]</span>"
/proc/span_tinynotice(str)
return "<span class='tinynotice'>[str]</span>"
/proc/span_tinynoticeital(str)
return "<span class='tinynoticeital'>[str]</span>"
/proc/span_unconscious(str)
return "<span class='unconscious'>[str]</span>"
/proc/span_userdanger(str)
return "<span class='userdanger'>[str]</span>"
/proc/span_warning(str)
return "<span class='warning'>[str]</span>"
/proc/span_yell(str)
return "<span class='yell'>[str]</span>"
/proc/span_yellowteamradio(str)
return "<span class='yellowteamradio'>[str]</span>"
+1 -1
View File
@@ -284,7 +284,7 @@
if(!isturf(user.loc)) //no setting up in a locker
return
add_fingerprint(user)
user.visible_message(span_notice("[user] starts setting down [src]...", "You start setting up [pad]..."))
user.visible_message(span_notice("[user] starts setting down [src]..."), span_notice("You start setting up [pad]..."))
if(do_after(user, 30, target = user))
pad.forceMove(get_turf(src))
pad.update_indicator()
+1 -1
View File
@@ -215,7 +215,7 @@
to_chat(user, span_warning("[I] is too large for the drain enclosure."))
return
if(!user.transferItemToLoc(I, src))
to_chat(user, span_warning("\[I] is stuck to your hand, you cannot put it in the drain enclosure!"))
to_chat(user, span_warning("[I] is stuck to your hand, you cannot put it in the drain enclosure!"))
return
hiddenitem = I
to_chat(user, span_notice("You place [I] into the drain enclosure."))
@@ -338,7 +338,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
if(connected_ai && connected_ai.mind && connected_ai.mind.has_antag_datum(/datum/antagonist/traitor))
to_chat(src, span_danger("ALERT: Foreign software execution prevented."))
logevent("ALERT: Foreign software execution prevented.")
to_chat(connected_ai, span_danger("ALERT: Cyborg unit \[[src]] successfully defended against subversion."))
to_chat(connected_ai, span_danger("ALERT: Cyborg unit \[[src]\] successfully defended against subversion."))
log_game("[key_name(user)] attempted to emag cyborg [key_name(src)], but they were slaved to traitor AI [connected_ai].")
return
+1 -1
View File
@@ -127,6 +127,7 @@
#include "code\__DEFINES\sound.dm"
#include "code\__DEFINES\space.dm"
#include "code\__DEFINES\spaceman_dmm.dm"
#include "code\__DEFINES\span.dm"
#include "code\__DEFINES\stat.dm"
#include "code\__DEFINES\stat_tracking.dm"
#include "code\__DEFINES\station.dm"
@@ -195,7 +196,6 @@
#include "code\__HELPERS\roundend.dm"
#include "code\__HELPERS\sanitize_values.dm"
#include "code\__HELPERS\shell.dm"
#include "code\__HELPERS\span.dm"
#include "code\__HELPERS\stat_tracking.dm"
#include "code\__HELPERS\string_assoc_lists.dm"
#include "code\__HELPERS\string_lists.dm"