diff --git a/code/__DEFINES/html_assistant.dm b/code/__DEFINES/html_assistant.dm
new file mode 100644
index 000000000000..91af96a95c7a
--- /dev/null
+++ b/code/__DEFINES/html_assistant.dm
@@ -0,0 +1,5 @@
+#define HTML_SKELETON_INTERNAL(head, body) \
+"
[head][body]"
+
+#define HTML_SKELETON_TITLE(title, body) HTML_SKELETON_INTERNAL("[title] ", body)
+#define HTML_SKELETON(body) HTML_SKELETON_INTERNAL("", body)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 9c4dae49e0e8..a53e9af52995 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -270,7 +270,6 @@ block( \
if(I.imp_in)
. |= I.imp_in
-#define SIGNV(X) ((X<0)?-1:1)
/proc/inLineOfSight(X1,Y1,X2,Y2,Z=1,PX1=16.5,PY1=16.5,PX2=16.5,PY2=16.5)
var/turf/T
@@ -301,7 +300,6 @@ block( \
if(IS_OPAQUE_TURF(T))
return 0
return 1
-#undef SIGNV
/proc/isInSight(atom/A, atom/B)
diff --git a/code/__HELPERS/stat_tracking.dm b/code/__HELPERS/stat_tracking.dm
index 007cd2695d0a..2f55ea0455df 100644
--- a/code/__HELPERS/stat_tracking.dm
+++ b/code/__HELPERS/stat_tracking.dm
@@ -8,6 +8,6 @@
lines += "[entry] => [num2text(data[STAT_ENTRY_TIME], 10)]ms ([data[STAT_ENTRY_COUNT]]) (avg:[num2text(data[STAT_ENTRY_TIME]/(data[STAT_ENTRY_COUNT] || 1), 99)])"
if (user)
- user << browse("[lines.Join(" ")] ", "window=[url_encode("stats:[REF(stats)]")]")
+ user << browse(HTML_SKELETON("[lines.Join(" ")] "), "window=[url_encode("stats:[REF(stats)]")]")
. = lines.Join("\n")
diff --git a/code/_onclick/hud/map_popups.dm b/code/_onclick/hud/map_popups.dm
index 539d5f551055..e93200a52ad1 100644
--- a/code/_onclick/hud/map_popups.dm
+++ b/code/_onclick/hud/map_popups.dm
@@ -52,6 +52,17 @@
/atom/movable/screen/proc/set_position(x, y, px = 0, py = 0)
if(assigned_map)
screen_loc = "[assigned_map]:[x]:[px],[y]:[py]"
+ ASYNC
+ // HACK: This fixes the character creator in 516 being small and relying on other byondui things (like cameras) to open in order to update and refresh.
+ // This also will fix the camera console screen being offset, Gateway, and admin pod panel.
+ // Adding 100 then setting it back seemed to do the trick!
+ // Why the fuck does this work? This is some byond bug and I honestly have no fucking clue why this works.
+ // I don't think plane master will be affected, I hope.
+ // We're stuck in the belly of this awful machine.
+ sleep(0.2 SECONDS) // If it's too fast, it has a chance to fail? Idk. This seems like a good number.
+ screen_loc = "[assigned_map]:[x+100]:[px],[y+100]:[py]"
+ sleep(0.2 SECONDS)
+ screen_loc = "[assigned_map]:[x]:[px],[y]:[py]"
else
screen_loc = "[x]:[px],[y]:[py]"
diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index 408c506ef3dc..6ff69d0ed9ac 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -526,3 +526,10 @@
/datum/config_entry/string/elasticsearch_metrics_endpoint
/datum/config_entry/string/elasticsearch_metrics_apikey
+
+/**
+ * Tgui ui_act payloads larger than 2kb are split into chunks a maximum of 1kb in size.
+ * This flag represents the maximum chunk count the server is willing to receive.
+ */
+/datum/config_entry/number/tgui_max_chunk_count
+ default = 32
diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm
index 078eb605fcb3..8536ebfd1c27 100644
--- a/code/datums/looping_sounds/machinery_sounds.dm
+++ b/code/datums/looping_sounds/machinery_sounds.dm
@@ -30,8 +30,6 @@
end_sound = 'sound/machines/generator/generator_end.ogg'
volume = 40
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
// [CELADON-ADD] - CELADON_GRAVGEN
/datum/looping_sound/gravity_generator
mid_sounds = list('mod_celadon/_storage_sounds/sound/effects/beam.ogg')
@@ -40,7 +38,6 @@
falloff_distance = 3
// [/CELADON-ADD]
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/looping_sound/oven
start_sound = 'sound/machines/oven/oven_loop_start.ogg'
start_length = 12
diff --git a/code/datums/profiling.dm b/code/datums/profiling.dm
index 49a80d0eded6..3e8505b8db47 100644
--- a/code/datums/profiling.dm
+++ b/code/datums/profiling.dm
@@ -15,4 +15,6 @@ GLOBAL_REAL_VAR(PROFILE_TIME)
var/list/data = PROFILE_STORE[entry]
lines += "[entry] => [num2text(data[PROFILE_ITEM_TIME], 10)]ms ([data[PROFILE_ITEM_COUNT]]) (avg:[num2text(data[PROFILE_ITEM_TIME]/(data[PROFILE_ITEM_COUNT] || 1), 99)])"
- user << browse("[lines.Join(" ")] ", "window=[url_encode(GUID())]")
+ var/datum/browser/browser = new(user, "[url_encode(GUID())]", null, 500, 500)
+ browser.set_content("[lines.Join(" ")] ")
+ browser.open()
diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm
index 88480101f5c0..b57b1a518c0f 100644
--- a/code/datums/wounds/_wounds.dm
+++ b/code/datums/wounds/_wounds.dm
@@ -400,4 +400,4 @@
/// Gets the name of the wound with any interactable topic if possible
/datum/wound/proc/get_topic_name(mob/user)
- return show_wound_topic(user) ? "[lowertext(name)] " : lowertext(name)
+ return show_wound_topic(user) ? "[lowertext(name)] " : lowertext(name)
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index d5da5fa63f9d..3d04fbd5e576 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -459,7 +459,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod/retro, 17)
to_chat(target, span_boldnotice("If you ghost, log out or close your client now, your character will shortly be permanently removed from the round."))
name = "[name] ([occupant.name])"
log_admin(span_notice("[key_name(target)] entered a stasis pod."))
- message_admins("[key_name_admin(target)] entered a stasis pod. (JMP )")
+ message_admins("[key_name_admin(target)] entered a stasis pod. (JMP )")
add_fingerprint(target)
/obj/machinery/cryopod/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override)
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index 0a09a5aa98d5..8d2f0c3d717e 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -210,7 +210,7 @@
M << browse_rsc(picture.picture_image, "pda_photo.png")
M << browse("PDA Photo " \
+ "" \
- + " " \
+ + " " \
+ "", "window=pdaphoto;size=[picture.psize_x]x[picture.psize_y];can-close=true")
onclose(M, "pdaphoto")
diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm
index 6379c3ac7197..67de48ac8912 100644
--- a/code/game/objects/items/charter.dm
+++ b/code/game/objects/items/charter.dm
@@ -58,7 +58,7 @@
to_chat(user, span_notice("Your name has been sent to your employers for approval."))
// Autoapproves after a certain time
response_timer_id = addtimer(CALLBACK(src, PROC_REF(rename_station), new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
- to_chat(GLOB.admins, span_adminnotice("CUSTOM STATION RENAME: [ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (REJECT ) [ADMIN_CENTCOM_REPLY(user)]"))
+ to_chat(GLOB.admins, span_adminnotice("CUSTOM STATION RENAME: [ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (REJECT ) [ADMIN_CENTCOM_REPLY(user)]"))
/obj/item/sector_charter/proc/reject_proposed(user)
if(!user)
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 8f24d81754df..f5c0b8921a55 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -57,10 +57,12 @@
dat += "\[Wipe current pAI personality\] "
else
dat += "No personality installed. "
- dat += "Searching for a personality... Press view available personalities to notify potential candidates."
+ dat += "Searching for a personality... Press view available personalities to notify potential candidates. "
dat += "\[View available personalities\] "
- user << browse(dat, "window=paicard")
- onclose(user, "paicard")
+
+ var/datum/browser/popup = new(user, "Personal AI Device", name, 500, 430)
+ popup.set_content(dat)
+ popup.open()
return
/obj/item/paicard/Topic(href, href_list)
diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm
index 3d6c0895247d..5a10d787bb93 100644
--- a/code/game/objects/items/storage/secure.dm
+++ b/code/game/objects/items/storage/secure.dm
@@ -76,7 +76,9 @@
if (!locked)
message = "*****"
dat += text(" \n>[] \n1 -2 -3 \n4 -5 -6 \n7 -8 -9 \nR -0 -E \n", message)
- user << browse(dat, "window=caselock;size=300x280")
+ var/datum/browser/popup = new(user, "Passcode Interface", name, 300, 280)
+ popup.set_content(dat)
+ popup.open()
/obj/item/storage/secure/Topic(href, href_list)
..()
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 39d053f6d4dc..5511779be387 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -444,8 +444,8 @@
dat += " "
if(SSticker.IsRoundInProgress())
dat += "(Game Mode Panel) "
+ dat += " "
dat += {"
-
Create Object
Quick Create Object
Create Turf
@@ -460,7 +460,6 @@
var/datum/browser/popup = new(usr, "admin2", null, 240, 280)
popup.set_content(dat)
popup.open()
-// usr << browse(dat, "window=admin2;size=240x280")
return
/////////////////////////////////////////////////////////////////////////////////////////////////admins2.dm merge
@@ -868,10 +867,7 @@
to_chat(usr, "No AIs located " , confidential = TRUE)
/datum/admins/proc/dynamic_mode_options(mob/user)
- var/dat = {"
- Dynamic Mode Options
-
- Common options
+ var/dat = {"Common options
All these options can be changed midround.
Force extended: - Option is [GLOB.dynamic_forced_extended ? "ON" : "OFF"] .
@@ -901,9 +897,11 @@
Midround injection delay:
Minimum: -> [GLOB.dynamic_midround_delay_min / 60 / 10] <- Minutes
Maximum: -> [GLOB.dynamic_midround_delay_max / 60 / 10] <- Minutes
- "}
+ "}
- user << browse(dat, "window=dyn_mode_options;size=900x650")
+ var/datum/browser/browser = new(user, "dyn_mode_options", "Dynamic Mode Options", 900, 650)
+ browser.set_content(dat)
+ browser.open()
/datum/admins/proc/create_or_modify_area()
set category = "Debug"
diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm
index 8ecfad437a1c..3bf786adb43d 100644
--- a/code/modules/admin/permissionedit.dm
+++ b/code/modules/admin/permissionedit.dm
@@ -121,9 +121,9 @@
deadminlink = " \[DA\] "
var/verify_link = ""
if (D.blocked_by_2fa)
- verify_link += " | \[2FA VERIFY\] "
+ verify_link += " | \[2FA VERIFY\] "
output += ""
- output += "[adm_ckey] [deadminlink]\[-\] \[SYNC TGDB\] [verify_link] "
+ output += "[adm_ckey] [deadminlink]\[-\] \[SYNC TGDB\] [verify_link] "
output += "[D.rank.name] "
output += "[rights2text(D.rank.include_rights," ")] "
output += "[rights2text(D.rank.exclude_rights," ", "-")] "
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 367e4f57c8b8..9231e8b5059c 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1879,8 +1879,6 @@
var/list/dat = list()
dat += thing_to_check
-// usr << browse(dat.Join(" "), "window=related_[C];size=420x300")
-
var/datum/browser/popup = new(usr, "related_[C]", "Related accounts by [uppertext(href_list["showrelatedacc"])]:", 425, 300)
popup.set_content(dat.Join(" "))
popup.open()
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
index bd221a45f18e..6c0549fa122f 100644
--- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
@@ -541,7 +541,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
if(length(select_text))
var/text = islist(select_text)? select_text.Join() : select_text
var/static/result_offset = 0
- showmob << browse(text, "window=SDQL-result-[result_offset++]")
+ showmob << browse(HTML_SKELETON(text), "window=SDQL-result-[result_offset++]")
show_next_to_key = null
if(qdel_on_finish)
qdel(src)
diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm
index 1f706091c6b4..69841500facc 100644
--- a/code/modules/admin/verbs/getlogs.dm
+++ b/code/modules/admin/verbs/getlogs.dm
@@ -24,7 +24,7 @@
message_admins("[key_name_admin(src)] accessed file: [path]")
switch(alert("View (in game), Open (in your system's text editor), or Download?", path, "View", "Open", "Download"))
if ("View")
- src << browse("[html_encode(file2text(file(path)))] ", list2params(list("window" = "viewfile.[path]")))
+ src << browse(HTML_SKELETON("[html_encode(file2text(file(path)))] "), list2params(list("window" = "viewfile.[path]")))
if ("Open")
src << run(file(path))
if ("Download")
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 0b45809d9013..863db4a3939f 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -90,7 +90,7 @@ GLOBAL_PROTECT(admin_verbs_debug_extra)
for(var/turf/T in seen)
T.maptext = "[seen[T]]"
BLACKBOX_LOG_ADMIN_VERB("Show Camera Range")
- BLACKBOX_LOG_ADMIN_VERB("Show Camera Range")
+ //BLACKBOX_LOG_ADMIN_VERB("Show Camera Range") // what the fuck? Why?
#ifdef TESTING
GLOBAL_LIST_EMPTY(dirty_vars)
@@ -146,7 +146,7 @@ GLOBAL_LIST_EMPTY(dirty_vars)
output += "Camera not connected to wall at [ADMIN_VERBOSEJMP(C1)] Network: [json_encode(C1.network)] "
output += ""
- usr << browse(output,"window=airreport;size=1000x500")
+ usr << browse(HTML_SKELETON(output),"window=airreport;size=1000x500")
BLACKBOX_LOG_ADMIN_VERB("Show Camera Report")
/client/proc/intercom_view()
@@ -180,7 +180,7 @@ GLOBAL_LIST_EMPTY(dirty_vars)
dat += "[ADMIN_VERBOSEJMP(T)]\n"
dat += " "
- usr << browse(dat, "window=at_list")
+ usr << browse(HTML_SKELETON(dat), "window=at_list")
BLACKBOX_LOG_ADMIN_VERB("Show Roundstart Active Turfs")
diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm
index c147e3a092fe..337b9794b115 100644
--- a/code/modules/admin/verbs/secrets.dm
+++ b/code/modules/admin/verbs/secrets.dm
@@ -55,15 +55,14 @@
switch(action)
//Generic Buttons anyone can use.
if("admin_log")
- var/dat = "Admin Log "
+ var/dat
for(var/l in GLOB.admin_log)
dat += "[l] "
if(!GLOB.admin_log.len)
dat += "No-one has done anything this round!"
- //holder << browse(dat, "window=admin_log") WS edit
- var/datum/browser/popup = new(holder, "admin_log", null, 300, 430)
- popup.set_content(dat)
- popup.open()
+ var/datum/browser/browser = new(holder, "admin_log", "Admin Logs", 600, 500)
+ browser.set_content(dat)
+ browser.open()
//WS Begin - Mentors
if("mentor_log")
@@ -78,15 +77,15 @@
//WS end
if("show_admins")
- var/dat = "Current admins: "
+ var/dat
if(GLOB.admin_datums)
for(var/ckey in GLOB.admin_datums)
var/datum/admins/D = GLOB.admin_datums[ckey]
dat += "[ckey] - [D.rank.name] "
//holder << browse(dat, "window=showadmins;size=600x500") WS edit
- var/datum/browser/popup = new(holder, "showadmins", null, 600, 500)
- popup.set_content(dat)
- popup.open()
+ var/datum/browser/browser = new(holder, "showadmins", "Current admins", 600, 500)
+ browser.set_content(dat)
+ browser.open()
//Buttons for debug.
if("maint_access_engiebrig")
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 800d7aecb06b..e4df6687148d 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -386,7 +386,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
msg += "Your version: [byond_version] "
msg += "Required version to remove this message: [cwv] or later "
msg += "Visit BYOND's website to get the latest version of BYOND. "
- src << browse(msg, "window=warning_popup")
+ src << browse(HTML_SKELETON(msg), "window=warning_popup")
else
to_chat(src, span_danger("Your version of byond may be getting out of date: "))
to_chat(src, CONFIG_GET(string/client_warn_message))
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 6ef2b74a5641..3b4aa1cf5fb5 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -487,7 +487,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Height "
- dat += "[height_filter] "
+ dat += "[height_filter] "
// Everyone gets mutant colors now.
dat += "Mutant Colors "
@@ -713,7 +713,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[features["ipc_hair"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -941,7 +941,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Ears markings "
dat += "[features["tajara_ears_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -954,7 +954,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Head markings "
dat += "[features["tajara_head_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -967,7 +967,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Nose markings "
dat += "[features["tajara_nose_markings"]] "
- dat += " Change "
+ dat += " Change "
//dat += "Skin Tone nose "
//dat += "[skin_tone_nose] "
@@ -984,7 +984,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Chest markings "
dat += "[features["tajara_chest_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -997,7 +997,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Body markings "
dat += "[features["tajara_body_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1035,7 +1035,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Ears markings "
dat += "[features["riol_ears_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1048,7 +1048,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Head markings "
dat += "[features["riol_head_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1061,7 +1061,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Nose markings "
dat += "[features["riol_nose_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1074,7 +1074,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Chest markings "
dat += "[features["riol_chest_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1087,7 +1087,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Body markings "
dat += "[features["riol_body_markings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1100,7 +1100,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
// dat += "Tail markings "
// dat += "[features["riol_tail_markings"]] "
- // dat += " Change "
+ // dat += " Change "
// mutant_category++
// if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1125,7 +1125,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Tail "
dat += "[features["riol_tail"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
@@ -1206,7 +1206,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
//for(var/index in prosthetic_limbs)
//var/bodypart_name = parse_zone(index)
//dat += " [bodypart_name]: "
- //dat += "[prosthetic_limbs[index]] "
+ //dat += "[prosthetic_limbs[index]] "
//dat += " " [/CELADON-EDIT] - ORIGINAL END
if(!istype(pref_species, /datum/species/lanius))
dat += "Prosthetic Limbs "
@@ -1218,7 +1218,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
for(var/index in prosthetic_limbs)
var/bodypart_name = parse_zone(index)
dat += "[bodypart_name]: "
- dat += "[prosthetic_limbs[index]] "
+ dat += "[prosthetic_limbs[index]] "
dat += " "
//[/CELADON - EDIT]
if(2) //Loadout
diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm
index 703a2b4d63ee..82e67a8445e5 100644
--- a/code/modules/client/verbs/ooc.dm
+++ b/code/modules/client/verbs/ooc.dm
@@ -392,7 +392,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
//Collect keywords
var/list/keywords = mob.get_policy_keywords()
var/header = get_policy(POLICY_VERB_HEADER)
- var/list/policytext = list(header," ")
+ var/list/policytext = list(header)
var/anything = FALSE
for(var/keyword in keywords)
var/p = get_policy(keyword)
@@ -403,7 +403,9 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
if(!anything)
policytext += "No related rules found."
- usr << browse(policytext.Join(""),"window=policy")
+ var/datum/browser/browser = new(usr, "policy", "Server Policy", 600, 500)
+ browser.set_content(policytext.Join(""))
+ browser.open()
/client/verb/fix_stat_panel()
set name = "Fix Stat Panel"
diff --git a/code/modules/mapping/verify.dm b/code/modules/mapping/verify.dm
index 1f071aaec720..fe68afefcc5d 100644
--- a/code/modules/mapping/verify.dm
+++ b/code/modules/mapping/verify.dm
@@ -15,7 +15,6 @@
/// Show a rendered version of this report to a client.
/datum/map_report/proc/show_to(client/C)
var/list/html = list()
- html += "Report for map file [original_path]
"
if(crashed)
html += "Validation crashed : check the runtime logs.
"
if(!loadable)
@@ -39,7 +38,9 @@
html += ""
html += ""
html += ""
- C << browse(html.Join(), "window=[tag];size=600x400")
+ var/datum/browser/browser = new(C.mob, "[tag]", "Report for map file [original_path]", 600, 400)
+ browser.set_content(html.Join())
+ browser.open()
/datum/map_report/Topic(href, href_list)
. = ..()
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 8b11b6e5645c..2d5987542263 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -224,12 +224,11 @@
var/less_input_message
if(SSlag_switch.measures[DISABLE_DEAD_KEYLOOP])
less_input_message = " - Notice: Observer freelook is currently disabled."
- var/this_is_like_playing_right = tgui_alert(src, "Are you sure you wish to observe? You will [CONFIG_GET(flag/norespawn) ? "not " : "" ]be able to respawn later.[less_input_message]", "Player Setup", list("Yes","No"))
+ // Don't convert this to tgui please, it's way too important
+ var/this_is_like_playing_right = alert(usr, "Are you sure you wish to observe? You will not be able to play this round![less_input_message]", "Observe", "Yes", "No")
if(QDELETED(src) || !src.client || this_is_like_playing_right != "Yes")
ready = PLAYER_NOT_READY
- src << browse(null, "window=playersetup") //closes the player setup window
- new_player_panel()
return FALSE
var/mob/dead/observer/observer = new()
diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm
index efff1afef14d..b90c7a30c539 100644
--- a/code/modules/mob/dead/new_player/poll.dm
+++ b/code/modules/mob/dead/new_player/poll.dm
@@ -11,7 +11,7 @@
continue
output += "[poll.question] "
output += ""
- src << browse(jointext(output, ""),"window=playerpolllist;size=500x300")
+ src << browse(HTML_SKELETON(jointext(output, "")),"window=playerpolllist;size=500x300")
/**
* Redirects a player to the correct poll window based on poll type.
@@ -77,7 +77,7 @@
if(!voted_option_id || poll.allow_revoting)
output += " "
output += ""
- src << browse(jointext(output, ""),"window=playerpoll;size=500x250")
+ src << browse(HTML_SKELETON(jointext(output, "")),"window=playerpoll;size=500x250")
/**
* Shows voting window for a text response type poll, listing its relevant details.
@@ -113,8 +113,8 @@
"}
else
output += "[reply_text]"
- output += ""
- src << browse(jointext(output, ""),"window=playerpoll;size=500x500")
+ output += "