"
- user << browse("[t]", "window=navbeacon")
- onclose(user, "navbeacon")
- return
+ var/datum/browser/popup = new(user, "navbeacon", "Navbeacon")
+ popup.set_content(t)
+ popup.open()
/obj/machinery/navbeacon/Topic(href, href_list)
..()
diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm
index ad2177261e..b29f11c20b 100644
--- a/code/game/machinery/telecomms/traffic_control.dm
+++ b/code/game/machinery/telecomms/traffic_control.dm
@@ -111,13 +111,11 @@
else
dat += "NEVER"
-
- user << browse("[dat]", "window=traffic_control;size=575x400")
- onclose(user, "server_control")
+ var/datum/browser/popup = new(user, "traffic_control", "Traffic Control", 575, 400)
+ popup.set_content(dat)
+ popup.open()
temp = ""
- return
-
/obj/machinery/computer/telecomms/traffic/Topic(href, href_list)
if(..())
diff --git a/code/game/magic/archived_book.dm b/code/game/magic/archived_book.dm
index a4630f9c62..38bf310c0f 100644
--- a/code/game/magic/archived_book.dm
+++ b/code/game/magic/archived_book.dm
@@ -76,8 +76,9 @@ var/global/datum/book_manager/book_mgr = new()
dat += ""
qdel(query)
- usr << browse("[dat]", "window=library")
- onclose(usr, "library")
+ var/datum/browser/popup = new(usr, "library", "Library")
+ popup.set_content(dat)
+ popup.open()
//VOREStation Edit End
// delete a book
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index e0fb131ea4..fe2d08fc48 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -78,10 +78,10 @@
/obj/item/blueprints/interact()
var/area/A = get_area()
- var/text = {"[src]
-[station_name()] blueprints
-Property of [using_map.company_name]. For heads of staff only. Store in high-secure storage.
-"}
+ var/text = {"
+ [station_name()] blueprints
+ Property of [using_map.company_name]. For heads of staff only. Store in high-secure storage.
+ "}
var/curAreaType = get_area_type()
switch (curAreaType)
if (AREA_SPACE)
@@ -105,10 +105,10 @@
if(curAreaType & can_rename_areas_in)
text += "You can rename the area.
"
- text += ""
- usr << browse(text, "window=blueprints")
- onclose(usr, "blueprints")
-
+ var/datum/browser/popup = new(usr, "blueprints", "Blueprints")
+ popup.add_head_content("[src]")
+ popup.set_content(text)
+ popup.open()
/obj/item/blueprints/proc/get_area()
var/turf/T = get_turf(usr)
diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm
index 48228b7abc..60c0b72119 100644
--- a/code/game/objects/items/devices/uplink.dm
+++ b/code/game/objects/items/devices/uplink.dm
@@ -1,7 +1,7 @@
// I placed this here because of how relevant it is.
// You place this in your uplinkable item to check if an uplink is active or not.
// If it is, it will display the uplink menu and return 1, else it'll return false.
-// If it returns true, I recommend closing the item's normal menu with "user << browse(null, "window=name")"
+// If it returns true, I recommend closing the item's normal menu
/obj/item/proc/active_uplink_check(mob/user as mob)
// Activates the uplink if it's active
if(hidden_uplink)
@@ -42,7 +42,7 @@
*
* 1. All obj/item 's have a hidden_uplink var. By default it's null. Give the item one with "new(src)", it must be in it's contents. Feel free to add "uses".
*
- * 2. Code in the triggers. Use check_trigger for this, I recommend closing the item's menu with "usr << browse(null, "window=windowname") if it returns true.
+ * 2. Code in the triggers. Use check_trigger for this, I recommend closing the item's menu if it returns true.
* The var/value is the value that will be compared with the var/target. If they are equal it will activate the menu.
*
* 3. If you want the menu to stay until the users locks his uplink, add an active_uplink_check(mob/user as mob) in your interact/attack_hand proc.
diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm
index d4766052fc..1de659c7ff 100644
--- a/code/game/objects/items/weapons/policetape.dm
+++ b/code/game/objects/items/weapons/policetape.dm
@@ -378,7 +378,7 @@ var/list/tape_roll_applications = list()
if(user.a_intent == I_HELP)
to_chat(user, span_warning("You refrain from breaking \the [src]."))
return
- user.visible_message(span_bold("\The [user]") + "breaks \the [src]!",span_notice("You break \the [src]."))
+ user.visible_message(span_bold("\The [user]") + " breaks \the [src]!",span_notice("You break \the [src]."))
for (var/obj/item/tape/T in gettapeline())
if(T == src)
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 2329dae0e1..b57e5d8b55 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -228,8 +228,6 @@
if(gurgled && clean_types & CLEAN_WASH)
gurgled = FALSE
cut_overlay(gurgled_overlays[gurgled_color])
- name = initial(name)
- desc = initial(desc)
if(contaminated && clean_types & CLEAN_RAD) // Phoron and stuff, washing machine needed
contaminated = FALSE
cut_overlay(contamination_overlay)
diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm
index d81391b610..0ab9fe01ba 100644
--- a/code/modules/admin/permissionedit.dm
+++ b/code/modules/admin/permissionedit.dm
@@ -467,7 +467,7 @@
admin_holder.rank_flags(),
350,
590,
- allowed_edit_list = usr.client.holder.can_edit_rights_flags(),
+ allowed_edit_field = usr.client.holder.can_edit_rights_flags(),
)
admin_holder.disassociate()
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index cd4222a82b..9e54293f82 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -77,7 +77,9 @@ GLOBAL_VAR_INIT(global_vantag_hud, 0)
to_chat(src, "Some accounts did not have proper ages set in their clients. This function requires database to be present.")
if(msg != "")
- src << browse("[msg]", "window=Player_age_check")
+ var/datum/browser/popup = new(src, "Player_age_check", "Player Age Check")
+ popup.set_content(msg)
+ popup.open()
else
to_chat(src, "No matches for that age range found.")
diff --git a/code/modules/power/antimatter/computer.dm b/code/modules/power/antimatter/computer.dm
index 9b89f72223..3180b1d304 100644
--- a/code/modules/power/antimatter/computer.dm
+++ b/code/modules/power/antimatter/computer.dm
@@ -61,7 +61,7 @@
if(..())
return
user.machine = src
- var/dat = "Engine Computer"
+ var/dat = ""
switch(src.state)
if(STATE_DEFAULT)
if (src.authenticated)
@@ -85,8 +85,11 @@
dat += "
Contents:
[src.connected_E.H_fuel]kg of Hydrogen
[src.connected_E.antiH_fuel]kg of Anti-Hydrogen
"
dat += "
\[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]"
- user << browse("[dat]", "window=communications;size=400x500")
- onclose(user, "communications")
+
+ var/datum/browser/popup = new(user, "communications", "Communications", 400, 500)
+ popup.add_head_content("Engine Computer")
+ popup.set_content(dat)
+ popup.open()
#undef STATE_DEFAULT
#undef STATE_INJECTOR
diff --git a/code/modules/power/fusion/gyrotron/gyrotron_control.dm b/code/modules/power/fusion/gyrotron/gyrotron_control.dm
index f9349a3496..d1ccde35e3 100644
--- a/code/modules/power/fusion/gyrotron/gyrotron_control.dm
+++ b/code/modules/power/fusion/gyrotron/gyrotron_control.dm
@@ -31,91 +31,6 @@
monitor.tgui_interact(user)
-/*
-/obj/machinery/computer/gyrotron_control/attack_hand(var/mob/user)
- add_fingerprint(user)
- interact(user)
-
-/obj/machinery/computer/gyrotron_control/interact(var/mob/user)
-
- if(stat & (BROKEN|NOPOWER))
- user.unset_machine()
- user << browse(null, "window=gyrotron_controller_[id_tag]")
- return
-
- if(!id_tag)
- to_chat(user, span_warning("This console has not been assigned an ident tag. Please contact your system administrator or conduct a manual update with a standard multitool."))
- return
-
- var/dat = "" + span_bold("Gyrotron controller #[id_tag]")
-
- dat = ""
- dat += "| " + span_bold("Mode") + " | "
- dat += "" + span_bold("Fire Delay") + " | "
- dat += "" + span_bold("Power") + " | "
- dat += " "
-
- for(var/obj/machinery/power/emitter/gyrotron/G in gyrotrons)
- if(!G || G.id_tag != id_tag || get_dist(src, G) > scan_range)
- continue
-
- dat += ""
- if(G.state != 2 || (G.stat & (NOPOWER | BROKEN))) //Error data not found.
- dat += "| " + span_red("ERROR") + " | "
- dat += "" + span_red("ERROR") + " | "
- dat += "" + span_red("ERROR") + " | "
- else
- dat += "[G.active ? "Emitting" : "Standing By"] | "
- dat += "[G.rate] | "
- dat += "[G.mega_energy] | "
-
- dat += " "
-
- var/datum/browser/popup = new(user, "gyrotron_controller_[id_tag]", "Gyrotron Remote Control Console", 500, 400, src)
- popup.set_content(dat)
- popup.open()
- add_fingerprint(user)
- user.set_machine(src)
-
-/obj/machinery/computer/gyrotron_control/Topic(var/href, var/list/href_list)
- . = ..()
- if(.)
- return
-
- if(stat & (NOPOWER | BROKEN))
- return
-
- var/obj/machinery/power/emitter/gyrotron/G = locate(href_list["machine"])
- if(!G || G.id_tag != id_tag || get_dist(src, G) > scan_range)
- return
-
- if(href_list["modifypower"])
- var/new_val = tgui_input_number(usr, "Enter new emission power level (1 - 50)", "Modifying power level", G.mega_energy, 50, 1)
- if(!new_val)
- to_chat(usr, span_warning("That's not a valid number."))
- return 1
- G.mega_energy = CLAMP(new_val, 1, 50)
- G.update_active_power_usage(G.mega_energy * 1500)
- updateUsrDialog(usr)
- return 1
-
- if(href_list["modifyrate"])
- var/new_val = tgui_input_number(usr, "Enter new emission delay between 1 and 10 seconds.", "Modifying emission rate", G.rate, 10, 1)
- if(!new_val)
- to_chat(usr, span_warning("That's not a valid number."))
- return 1
- G.rate = CLAMP(new_val, 1, 10)
- updateUsrDialog(usr)
- return 1
-
- if(href_list["toggle"])
- G.activate(usr)
- updateUsrDialog(usr)
- return 1
-
- return 0
-*/
-
/obj/machinery/computer/gyrotron_control/attackby(var/obj/item/W, var/mob/user)
..()
if(istype(W, /obj/item/multitool))
diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm
index d4045ae360..e9833d4fe7 100644
--- a/code/modules/projectiles/guns/projectile/dartgun.dm
+++ b/code/modules/projectiles/guns/projectile/dartgun.dm
@@ -162,8 +162,9 @@
dat += span_red("The dart cartridge is empty!")
dat += " \[Eject\]"
- user << browse("[dat]", "window=dartgun")
- onclose(user, "dartgun", src)
+ var/datum/browser/popup = new(user, "dartgun", "Dartgun")
+ popup.set_content(dat)
+ popup.open()
/obj/item/gun/projectile/dartgun/proc/check_beaker_mixing(var/obj/item/B)
if(!mixing || !beakers)
diff --git a/code/modules/reagents/Chemistry-Logging.dm b/code/modules/reagents/Chemistry-Logging.dm
index 70657e4c1b..899a58a1f8 100644
--- a/code/modules/reagents/Chemistry-Logging.dm
+++ b/code/modules/reagents/Chemistry-Logging.dm
@@ -25,4 +25,6 @@ GLOBAL_LIST_EMPTY(chemical_reaction_logs)
for(var/entry in GLOB.chemical_reaction_logs)
html += "[entry] "
- usr << browse("[html]", "window=chemlogs")
+ var/datum/browser/popup = new(usr, "chemlogs", "Chemlogs")
+ popup.set_content(html)
+ popup.open()
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index a23e73153e..6f243084da 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -301,84 +301,6 @@
return TRUE
-
- // src.add_fingerprint(user)
- // if(stat & BROKEN)
- // user.unset_machine()
- // return
-
- // var/dat = "Waste Disposal Unit" + span_bold("Waste Disposal Unit") + " "
-
- // if(!ai) // AI can't pull flush handle
- // if(flush)
- // dat += "Disposal handle: Disengage " + span_bold("Engaged")
- // else
- // dat += "Disposal handle: " + span_bold("Disengaged") + " Engage"
-
- // dat += "
Eject contents "
-
- // if(mode <= 0)
- // dat += "Pump: " + span_bold("Off") + " On "
- // else if(mode == 1)
- // dat += "Pump: Off " + span_bold("On") + " (pressurizing) "
- // else
- // dat += "Pump: Off " + span_bold("On") + " (idle) "
-
- // var/per = 100* air_contents.return_pressure() / (SEND_PRESSURE)
-
- // dat += "Pressure: [round(per, 1)]% "
-
-
- // user.set_machine(src)
- // user << browse("[dat]", "window=disposal;size=360x170")
- // onclose(user, "disposal")
-
-// handle machine interaction
-
-// /obj/machinery/disposal/Topic(href, href_list)
-// if(usr.loc == src)
-// to_chat(usr, span_red("You cannot reach the controls from inside."))
-// return
-
-// if(mode==-1 && !href_list["eject"]) // only allow ejecting if mode is -1
-// to_chat(usr, span_red("The disposal units power is disabled."))
-// return
-// if(..())
-// return
-
-// if(stat & BROKEN)
-// return
-// if(usr.stat || usr.restrained() || src.flushing)
-// return
-
-// if(istype(src.loc, /turf))
-// usr.set_machine(src)
-
-// if(href_list["close"])
-// usr.unset_machine()
-// usr << browse(null, "window=disposal")
-// return
-
-// if(href_list["pump"])
-// if(text2num(href_list["pump"]))
-// mode = 1
-// else
-// mode = 0
-// update()
-
-// if(!isAI(usr))
-// if(href_list["handle"])
-// flush = text2num(href_list["handle"])
-// update()
-
-// if(href_list["eject"])
-// eject()
-// else
-// usr << browse(null, "window=disposal")
-// usr.unset_machine()
-// return
-// return
-
// eject the contents of the disposal unit
/obj/machinery/disposal/verb/force_eject()
diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm
index 6f6cfe809b..8012009f62 100644
--- a/code/modules/spells/spellbook.dm
+++ b/code/modules/spells/spellbook.dm
@@ -78,9 +78,10 @@
// END AUTOFIX
if(op)
dat += "Re-memorize Spells "
- user << browse("[dat]", "window=radio")
- onclose(user, "radio")
- return
+
+ var/datum/browser/popup = new(user, "radio", "Spellbook")
+ popup.set_content(dat)
+ popup.open()
/obj/item/spellbook/Topic(href, href_list)
..()
diff --git a/code/modules/stockmarket/stockmarket.dm b/code/modules/stockmarket/stockmarket.dm
index 2df050715b..24ab0b065d 100644
--- a/code/modules/stockmarket/stockmarket.dm
+++ b/code/modules/stockmarket/stockmarket.dm
@@ -124,7 +124,7 @@
GLOBAL_DATUM_INIT(stockExchange, /datum/stockMarket, new)
/proc/plotBarGraph(var/list/points, var/base_text, var/width=400, var/height=400)
- var/output = ""
+ var/output = ""
if (points.len && height > 20 && width > 20)
var/min = points[1]
var/max = points[1]
@@ -165,4 +165,4 @@ GLOBAL_DATUM_INIT(stockExchange, /datum/stockMarket, new)
output += " | "
output += "| [base_text] | "
- return "[output] "
+ return "[output] "
diff --git a/code/modules/stockmarket/stocks.dm b/code/modules/stockmarket/stocks.dm
index 26608c1ff2..741239960e 100644
--- a/code/modules/stockmarket/stocks.dm
+++ b/code/modules/stockmarket/stocks.dm
@@ -305,4 +305,6 @@
return 0
/datum/stock/proc/displayValues(var/mob/user)
- user << browse(plotBarGraph(values, "[name] share value per share"), "window=stock_[name];size=450x450")
+ var/datum/browser/popup = new(user, "stock_[name]", "Share Value", 450, 450)
+ popup.set_content(plotBarGraph(values, "[name] share value per share"))
+ popup.open()
diff --git a/code/modules/tgui/modules/admin/player_notes.dm b/code/modules/tgui/modules/admin/player_notes.dm
index ebc69925c4..621e64fe02 100644
--- a/code/modules/tgui/modules/admin/player_notes.dm
+++ b/code/modules/tgui/modules/admin/player_notes.dm
@@ -238,7 +238,9 @@
if(index == page)
dat = span_bold(dat)
- usr << browse("[dat]", "window=player_notes;size=400x400")
+ var/datum/browser/popup = new(usr, "player_notes", "Admin Playernotes", 480, 480)
+ popup.set_content(dat)
+ popup.open()
/datum/admins/proc/player_has_info_legacy(var/key as text)
var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav")
@@ -253,8 +255,7 @@
if (!istype(src,/datum/admins))
to_chat(usr, "Error: you are not an admin!")
return
- var/dat = "Info on [key]"
- dat += ""
+ var/dat = ""
var/p_age = "unknown"
for(var/client/C in GLOB.clients)
@@ -288,8 +289,10 @@
dat += " "
dat += "Add Comment "
- dat += ""
- usr << browse(dat, "window=adminplayerinfo;size=480x480")
+ var/datum/browser/popup = new(usr, "adminplayerinfo", "Admin Playerinfo", 480, 480)
+ popup.add_head_content("Info on [key]")
+ popup.set_content(dat)
+ popup.open()
/datum/admins/Topic(href, href_list)
..()
diff --git a/code/modules/tgui_panel/external.dm b/code/modules/tgui_panel/external.dm
index 6574dd6ec9..ac0b96979b 100644
--- a/code/modules/tgui_panel/external.dm
+++ b/code/modules/tgui_panel/external.dm
@@ -17,7 +17,7 @@
nuke_chat()
// Failed to fix, using tgalert as fallback
- action = tgalert(src, "Did that work?", "", "Yes", "No, switch to old ui")
+ action = tg_alert(src, "Did that work?", "", "Yes", "No, switch to old ui")
if (action == "No, switch to old ui")
winset(src, "legacy_output_selector", "left=output_legacy")
log_tgui(src, "Failed to fix.", context = "verb/fix_tgui_panel")
diff --git a/code/modules/xenobio2/tools/xeno_trait_scanner.dm b/code/modules/xenobio2/tools/xeno_trait_scanner.dm
index 2033e73df7..2a11693b7e 100644
--- a/code/modules/xenobio2/tools/xeno_trait_scanner.dm
+++ b/code/modules/xenobio2/tools/xeno_trait_scanner.dm
@@ -180,6 +180,7 @@
if(dat)
last_data = dat
dat += "
\[print report\]"
- user << browse("[dat]","window=xeno_analyzer")
- return
+ var/datum/browser/popup = new(user, "xeno_analyzer", "Xeno Analyzer")
+ popup.set_content(dat)
+ popup.open()
diff --git a/ingame_manuals/malf_ai.html b/ingame_manuals/malf_ai.html
index 7a96d7b1e6..ff44c57e76 100644
--- a/ingame_manuals/malf_ai.html
+++ b/ingame_manuals/malf_ai.html
@@ -1,4 +1,4 @@
-Malfunctioning AI guide
+Malfunctioning AI guide
This guide contains most important OOC information for malfunctioning AIs.
@@ -19,4 +19,4 @@ Software are abilities that have to be unlocked via research menu (Hardware tab)
Interdiction - Sabotage-oriented abilities. T1 ability allows you to recall emergency shuttle. Higher level abilities allow you to unlock cyborgs even without access to robotics console, and T4 ability allows you to hack other AIs to slave them under your control.
Manipulation - Physical-oriented abilities. T1 ability allows you to break few lights, and rarely even APCs. T2 ability allows you to apply upgrade of your choice to camera, or reactivate broken camera. T3 ability allows you to create weak forcefield, that holds air, but won't last for long. And T4 ability allows you to overload machines, detonating them in weak explosion.
End
-If you still have some questions, either check the wiki, ask on IRC, or adminhelp and ask your friendly administration staff.
+If you still have some questions, either check the wiki, ask on IRC, or adminhelp and ask your friendly administration staff.
diff --git a/tgui/packages/tgui/interfaces/VorePanel/VoreSelectedBellyTabs/VoreSelectedBellyInteractions.tsx b/tgui/packages/tgui/interfaces/VorePanel/VoreSelectedBellyTabs/VoreSelectedBellyInteractions.tsx
index b74acbdcea..b6b3dcfb55 100644
--- a/tgui/packages/tgui/interfaces/VorePanel/VoreSelectedBellyTabs/VoreSelectedBellyInteractions.tsx
+++ b/tgui/packages/tgui/interfaces/VorePanel/VoreSelectedBellyTabs/VoreSelectedBellyInteractions.tsx
@@ -73,7 +73,7 @@ export const VoreSelectedBellyInteractions = (props: {
action="set_attribute"
subAction="b_digestchance"
editMode={editMode}
- value={interacts.escapechance}
+ value={interacts.digestchance}
minValue={0}
maxValue={100}
unit="%"
diff --git a/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesAesthetic.tsx b/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesAesthetic.tsx
index 3b38581989..4f0ceb32a4 100644
--- a/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesAesthetic.tsx
+++ b/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesAesthetic.tsx
@@ -18,7 +18,7 @@ export const VoreUserPreferencesAesthetic = (props: {
active_belly: string | null;
our_bellies: bellyData[];
belly_rub_target: string | null;
- vore_sprite_color: Record;
+ vore_sprite_color: Record;
vore_sprite_multiply: Record;
vore_icon_options: string[];
aestethicMessages: aestMessageData;
@@ -46,6 +46,10 @@ export const VoreUserPreferencesAesthetic = (props: {
const capitalizedName = active_belly && capitalize(active_belly);
+ const possibleIconOptions = vore_icon_options.filter(
+ (entry) => !!vore_sprite_color[entry],
+ );
+
return (
- {vore_icon_options.map((entry) => (
+ {possibleIconOptions.map((entry) => (
;
+ vore_sprite_color: Record;
vore_sprite_multiply: Record;
vore_icon_options: string[];
};
diff --git a/vorestation.dme b/vorestation.dme
index 2d5e0bd397..c2f47545e3 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -56,6 +56,7 @@
#include "code\__defines\chemistry_vr.dm"
#include "code\__defines\circuitboard.dm"
#include "code\__defines\cleaning.dm"
+#include "code\__defines\client.dm"
#include "code\__defines\cloning.dm"
#include "code\__defines\clothing.dm"
#include "code\__defines\color.dm"
|