From 633cea67a29a8014522014120275297c74fb0c37 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Wed, 18 Jun 2025 07:58:57 +0200 Subject: [PATCH] browse to browser continued (#17871) --- code/game/machinery/camera/camera.dm | 6 +- code/game/machinery/magnet.dm | 7 +- code/game/machinery/robot_fabricator.dm | 7 +- code/game/machinery/syndicatebeacon.dm | 6 +- code/game/machinery/syndicatebeacon_vr.dm | 6 +- .../items/weapons/implants/implantchair.dm | 5 +- code/game/objects/items/weapons/scrolls.dm | 7 +- code/modules/admin/DB ban/functions.dm | 4 +- code/modules/admin/NewBan.dm | 5 +- code/modules/admin/ToRban.dm | 6 +- code/modules/admin/admin.dm | 41 +++--- code/modules/admin/admin_report.dm | 5 +- code/modules/admin/admin_verbs.dm | 6 +- code/modules/admin/newbanjob.dm | 5 +- code/modules/admin/permissionedit.dm | 5 +- .../secrets/admin_secrets/bombing_list.dm | 5 +- .../admin/secrets/admin_secrets/list_dna.dm | 5 +- .../admin_secrets/list_fingerprints.dm | 5 +- .../admin_secrets/show_crew_manifest.dm | 4 +- .../secrets/admin_secrets/show_law_changes.dm | 5 +- .../secrets/admin_secrets/show_signalers.dm | 5 +- .../admin/verbs/check_customitem_activity.dm | 4 +- code/modules/admin/verbs/diagnostics.dm | 12 +- code/modules/admin/verbs/mapping.dm | 7 +- .../awaymissions/bluespaceartillery.dm | 7 +- code/modules/economy/money_bag.dm | 5 +- code/modules/economy/retail_scanner.dm | 9 +- .../core/special_pins/list_pin.dm | 5 +- code/modules/library/lib_items.dm | 6 +- code/modules/mentor/mentorhelp.dm | 18 ++- code/modules/mob/living/carbon/human/emote.dm | 5 +- .../living/carbon/human/human_attackhand.dm | 5 +- .../carbon/human/human_attackhand_vr.dm | 63 -------- .../mob/living/carbon/human/human_species.dm | 41 ++++++ .../living/carbon/human/human_species_vr.dm | 42 ------ .../station/station_special_abilities.dm | 7 +- .../tools/artifact_harvester.dm | 135 ------------------ vorestation.dme | 1 - 38 files changed, 203 insertions(+), 319 deletions(-) delete mode 100644 code/modules/mob/living/carbon/human/human_attackhand_vr.dm delete mode 100644 code/modules/mob/living/carbon/human/human_species_vr.dm diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 1f8e32d4b44..a212588b9b5 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -217,7 +217,11 @@ to_chat(O, span_infoplain(span_bold("[U]") + " holds \a [itemname] up to one of your cameras ...")) else to_chat(O, span_infoplain(span_bold("[U]") + " holds \a [itemname] up to one of your cameras ...")) - O << browse(text("[][]", itemname, info), text("window=[]", itemname)) + + var/datum/browser/popup = new(O, itemname, itemname) + popup.add_head_content("[itemname]") + popup.set_content("[info]") + popup.open() else if (istype(W, /obj/item/camera_bug)) if (!src.can_use()) diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 5f27c946d53..ac9853d1c2d 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -242,7 +242,7 @@ if(stat & (BROKEN|NOPOWER)) return user.set_machine(src) - var/dat = span_bold("Magnetic Control Console") + "

" + var/dat = "" if(!autolink) dat += {" Frequency: [frequency]
@@ -263,8 +263,9 @@ dat += "Moving: [moving ? "Enabled":"Disabled"]" - user << browse("[dat]", "window=magnet;size=400x500") - onclose(user, "magnet") + var/datum/browser/popup = new(user, "magnet", "Magnetic Control Console", 400, 500) + popup.set_content(dat) + popup.open() /obj/machinery/magnetic_controller/Topic(href, href_list) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm index 51a09f49a5c..57ba629d6c1 100644 --- a/code/game/machinery/robot_fabricator.dm +++ b/code/game/machinery/robot_fabricator.dm @@ -56,9 +56,10 @@ Please wait until completion...
Robot Frame (75,000 cc metal).
"} - user << browse("Robotic Fabricator Control Panel[dat]", "window=robot_fabricator") - onclose(user, "robot_fabricator") - return + var/datum/browser/popup = new(user, "robot_fabricator", "Robot Fabricator") + popup.add_head_content("Robotic Fabricator Control Panel") + popup.set_content("[dat]") + popup.open() /obj/machinery/robotic_fabricator/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 04513432e81..9f6e8b7f0ee 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -32,8 +32,10 @@ if(!selfdestructing) dat += "

\"[pick("I want to switch teams.", "I want to work for you.", "Let me join you.", "I can be of use to you.", "You want me working for you, and here's why...", "Give me an objective.", "How's the 401k over at the Syndicate?")]\"
" dat += temptext - user << browse("[dat]", "window=syndbeacon") - onclose(user, "syndbeacon") + + var/datum/browser/popup = new(user, "syndbeacon", "Ominous Beacon") + popup.set_content(dat) + popup.open() /obj/machinery/syndicate_beacon/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/syndicatebeacon_vr.dm b/code/game/machinery/syndicatebeacon_vr.dm index 356ba99d6d7..c35454278ea 100644 --- a/code/game/machinery/syndicatebeacon_vr.dm +++ b/code/game/machinery/syndicatebeacon_vr.dm @@ -16,8 +16,10 @@ if(!selfdestructing) dat += "

\"[pick("Send me some supplies!", "Transfer supplies.")]\"
" dat += temptext - user << browse("[dat]", "window=syndbeacon") - onclose(user, "syndbeacon") + + var/datum/browser/popup = new(user, "syndbeacon", "Ominous Beacon") + popup.set_content(dat) + popup.open() /obj/machinery/syndicate_beacon/virgo/Topic(href, href_list) if(href_list["betraitor"]) diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 0f5bf2fbc83..1fc0bbd0c25 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -42,9 +42,10 @@ if(src.occupant) dat += "[src.ready ? "Implant" : "Recharging"]
" user.set_machine(src) - user << browse("[dat]", "window=implant") - onclose(user, "implant") + var/datum/browser/popup = new(user, "implant", "Implant") + popup.set_content(dat) + popup.open() /obj/machinery/implantchair/Topic(href, href_list) if((get_dist(src, usr) <= 1) || isAI(usr)) diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index f4d89526d90..309e66f503b 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -26,9 +26,10 @@ dat += span_bold("Four uses use them wisely:") + "
" dat += "Teleport
" dat += "Kind regards,
Wizards Federation

P.S. Don't forget to bring your gear, you'll need it to cast most spells.
" - user << browse("[dat]", "window=scroll") - onclose(user, "scroll") - return + + var/datum/browser/popup = new(user, "scroll", "Scroll") + popup.set_content(dat) + popup.open() /obj/item/teleportation_scroll/Topic(href, href_list) ..() diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm index 0fe48d12636..90393cb1220 100644 --- a/code/modules/admin/DB ban/functions.dm +++ b/code/modules/admin/DB ban/functions.dm @@ -486,4 +486,6 @@ output += "" qdel(select_query) - usr << browse("[output]","window=lookupbans;size=900x700") + var/datum/browser/popup = new(owner, "lookupbans", "Lookup Bans", 900, 700) + popup.set_content(output) + popup.open() diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 98761987fe2..6053bcaceae 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -190,7 +190,10 @@ var/savefile/Banlist dat += "" dat = "
" + span_bold("Bans:") + " " + span_blue("(U) = Unban , (E) = Edit Ban") + " - " + span_green("([count] Bans)") + "
[dat]" - usr << browse("[dat]", "window=unbanp;size=875x400") + + var/datum/browser/popup = new(owner, "unbanp", "Unban", 875, 400) + popup.set_content(dat) + popup.open() //////////////////////////////////// DEBUG //////////////////////////////////// diff --git a/code/modules/admin/ToRban.dm b/code/modules/admin/ToRban.dm index 79cf5e5fe7a..2152fa97596 100644 --- a/code/modules/admin/ToRban.dm +++ b/code/modules/admin/ToRban.dm @@ -67,7 +67,11 @@ dat = "
[dat]
" else dat = "No addresses in list." - src << browse("[dat]","window=ToRban_show") + + var/datum/browser/popup = new(src, "ToRban_show", "Torban") + popup.set_content(dat) + popup.open() + if("remove") var/savefile/F = new(TORFILE) var/choice = tgui_input_list(src,"Please select an IP address to remove from the ToR banlist:","Remove ToR ban", F.dir) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 57e0d4ccfb2..c7b857595e9 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -53,8 +53,7 @@ GLOBAL_VAR_INIT(floorIsLava, 0) to_chat(usr, "Error: you are not an admin!") return - var/body = "Options for [M.key]" - body += "Options panel for" + span_bold("[M]") + var/body = "Options panel for" + span_bold("[M]") if(M.client) body += " played by " + span_bold("[M.client]") body += "\[[M.client.holder ? M.client.holder.rank_names() : "Player"]\]" @@ -236,11 +235,13 @@ GLOBAL_VAR_INIT(floorIsLava, 0) else body += "[k]" - body += {"
- - "} + body += {"
"} + + var/datum/browser/popup = new(owner, "adminplayeropts", "Edit Player", 550, 515) + popup.add_head_content("Options for [M.key]") + popup.set_content(body) + popup.open() - usr << browse(body, "window=adminplayeropts;size=550x515") feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -314,7 +315,7 @@ GLOBAL_VAR_INIT(floorIsLava, 0) to_chat(usr, "Error: you are not an admin!") return var/dat - dat = text("Admin Newscaster

Admin Newscaster Unit

") + dat = text("

Admin Newscaster Unit

") switch(admincaster_screen) if(0) @@ -547,10 +548,11 @@ GLOBAL_VAR_INIT(floorIsLava, 0) //to_world("Channelname: [src.admincaster_feed_channel.channel_name] [src.admincaster_feed_channel.author]") //to_world("Msg: [src.admincaster_feed_message.author] [src.admincaster_feed_message.body]") - usr << browse("[dat]", "window=admincaster_main;size=400x600") - onclose(usr, "admincaster_main") - + var/datum/browser/popup = new(owner, "admincaster_main", "Admin Newscaster", 400, 600) + popup.add_head_content("Admin Newscaster") + popup.set_content(dat) + popup.open() /datum/admins/proc/Jobbans() if(!check_rights(R_BAN)) return @@ -562,13 +564,17 @@ GLOBAL_VAR_INIT(floorIsLava, 0) r = copytext( r, 1, findtext(r,"##") )//removes the description dat += text("[t] (unban)") dat += "" - usr << browse("[dat]", "window=ban;size=400x400") + + var/datum/browser/popup = new(owner, "ban", "Job Bans", 400, 400) + popup.add_head_content("Admin Newscaster") + popup.set_content(dat) + popup.open() /datum/admins/proc/Game() if(!check_rights(0)) return var/dat = {" -
"} + span_bold("Game Panel") + {"

\n +
"} + span_bold("Game Panel") + {"

\n Change Game Mode
"} if(GLOB.master_mode == "secret") @@ -582,11 +588,12 @@ GLOBAL_VAR_INIT(floorIsLava, 0) Create Mob

Edit Airflow Settings
Edit Phoron Settings
- Choose a default ZAS setting
+ Choose a default ZAS setting
"} - usr << browse(dat, "window=admin2;size=210x280") - return + var/datum/browser/popup = new(owner, "admin2", "Game Panel", 210, 280) + popup.set_content(dat) + popup.open() /datum/admins/proc/Secrets(var/datum/admin_secret_category/active_category = null) if(!check_rights(0)) return @@ -1255,7 +1262,9 @@ var/datum/announcement/minor/admin_min_announcer = new out += " None." out += " \[+\]
" - usr << browse("[out]", "window=edit_mode[src]") + var/datum/browser/popup = new(owner, "edit_mode[src]", "Edit Game Mode") + popup.set_content(out) + popup.open() feedback_add_details("admin_verb","SGM") diff --git a/code/modules/admin/admin_report.dm b/code/modules/admin/admin_report.dm index 0aca9bb87e6..2bc01ad38b8 100644 --- a/code/modules/admin/admin_report.dm +++ b/code/modules/admin/admin_report.dm @@ -115,8 +115,9 @@ world/New() else output += "Whoops, no reports!" - usr << browse("[output]", "window=news;size=600x400") - + var/datum/browser/popup = new(src, "news", "News", 600, 400) + popup.set_content(output) + popup.open() /client/proc/Report(mob/M as mob in world) set category = "Admin.Moderation" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 6c76e569dde..017da87b67a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -719,8 +719,10 @@ ADMIN_VERB(removetickets, R_ADMIN, "Security Tickets", "Allows one to remove tic dat += "" qdel(query) - usr << browse("[dat]", "window=library") - onclose(usr, "library") + + var/datum/browser/popup = new(src, "library", "Delete Book") + popup.set_content(dat) + popup.open() /client/proc/toggle_spawning_with_recolour() set name = "Toggle Simple/Robot recolour verb" diff --git a/code/modules/admin/newbanjob.dm b/code/modules/admin/newbanjob.dm index 70a029a71a0..477567c2d7b 100644 --- a/code/modules/admin/newbanjob.dm +++ b/code/modules/admin/newbanjob.dm @@ -232,7 +232,10 @@ var/savefile/Banlistjob dat += "" dat = "
" + span_bold("Bans:") + " " span_blue("(U) = Unban , ") + " - " + span_green("([count] Bans)") + "
[dat]" - usr << browse("[dat]", "window=unbanp;size=875x400") + + var/datum/browser/popup = new(owner, "unbanjob", "Unban Job", 875, 400) + popup.set_content(dat) + popup.open() /*/datum/admins/proc/permjobban(ckey, computerid, reason, bannedby, temp, minutes, rank) if(AddBanjob(ckey, computerid, reason, usr.ckey, 0, 0, job)) diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm index 0ab9fe01ba3..6dd91e1e401 100644 --- a/code/modules/admin/permissionedit.dm +++ b/code/modules/admin/permissionedit.dm @@ -133,7 +133,10 @@ output += "
Search:
" if(QDELETED(usr)) return - usr << browse("[jointext(output, "")]","window=editrights;size=1000x650") + + var/datum/browser/popup = new(owner, "editrights", "Edit Rights", 1000, 650) + popup.set_content(jointext(output, "")) + popup.open() /datum/admins/proc/edit_rights_topic(list/href_list) if(!check_rights(R_PERMISSIONS)) diff --git a/code/modules/admin/secrets/admin_secrets/bombing_list.dm b/code/modules/admin/secrets/admin_secrets/bombing_list.dm index 1fb1fac6778..95f59c2bb16 100644 --- a/code/modules/admin/secrets/admin_secrets/bombing_list.dm +++ b/code/modules/admin/secrets/admin_secrets/bombing_list.dm @@ -9,4 +9,7 @@ var/dat = span_bold("Bombing List") for(var/l in GLOB.bombers) dat += text("[l]
") - user << browse("[dat]", "window=bombers") + + var/datum/browser/popup = new(user, "bombers", "Bombers") + popup.set_content(dat) + popup.open() diff --git a/code/modules/admin/secrets/admin_secrets/list_dna.dm b/code/modules/admin/secrets/admin_secrets/list_dna.dm index a4caf27b1d0..36bea6515ae 100644 --- a/code/modules/admin/secrets/admin_secrets/list_dna.dm +++ b/code/modules/admin/secrets/admin_secrets/list_dna.dm @@ -11,4 +11,7 @@ if(H.dna && H.ckey) dat += "[H][H.dna.unique_enzymes][H.dna ? H.dna.b_type : DEFAULT_BLOOD_TYPE]" dat += "" - user << browse("[dat]", "window=DNA;size=440x410") + + var/datum/browser/popup = new(user, "DNA", "DNA", 440, 410) + popup.set_content(dat) + popup.open() diff --git a/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm b/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm index ad86324de95..f38929c929d 100644 --- a/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm +++ b/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm @@ -16,4 +16,7 @@ else if(!H.dna) dat += "[H]H.dna = null" dat += "" - user << browse("[dat]", "window=fingerprints;size=440x410") + + var/datum/browser/popup = new(user, "fingerprints", "Fingerprints", 440, 410) + popup.set_content(dat) + popup.open() diff --git a/code/modules/admin/secrets/admin_secrets/show_crew_manifest.dm b/code/modules/admin/secrets/admin_secrets/show_crew_manifest.dm index 9e35bc40e38..b3ac22031ce 100644 --- a/code/modules/admin/secrets/admin_secrets/show_crew_manifest.dm +++ b/code/modules/admin/secrets/admin_secrets/show_crew_manifest.dm @@ -9,4 +9,6 @@ dat += "

Crew Manifest

" dat += GLOB.data_core.get_manifest() - user << browse("[dat]", "window=manifest;size=370x420;can_close=1") + var/datum/browser/popup = new(user, "manifest", "Manifest", 370, 420) + popup.set_content(dat) + popup.open() diff --git a/code/modules/admin/secrets/admin_secrets/show_law_changes.dm b/code/modules/admin/secrets/admin_secrets/show_law_changes.dm index 27c6330f07b..f72d796f4b6 100644 --- a/code/modules/admin/secrets/admin_secrets/show_law_changes.dm +++ b/code/modules/admin/secrets/admin_secrets/show_law_changes.dm @@ -12,4 +12,7 @@ var/dat = span_bold("Showing last [length(GLOB.lawchanges)] law changes.") + "
" for(var/sig in GLOB.lawchanges) dat += "[sig]
" - user << browse("[dat]", "window=GLOB.lawchanges;size=800x500") + + var/datum/browser/popup = new(user, "lawchanges", "Lawcahnges", 800, 500) + popup.set_content(dat) + popup.open() diff --git a/code/modules/admin/secrets/admin_secrets/show_signalers.dm b/code/modules/admin/secrets/admin_secrets/show_signalers.dm index b96200996a2..e6663d6f62c 100644 --- a/code/modules/admin/secrets/admin_secrets/show_signalers.dm +++ b/code/modules/admin/secrets/admin_secrets/show_signalers.dm @@ -12,4 +12,7 @@ var/dat = span_bold("Showing last [length(GLOB.lastsignalers)] signalers.") + "
" for(var/sig in GLOB.lastsignalers) dat += "[sig]
" - user << browse("[dat]", "window=lastsignalers;size=800x500") + + var/datum/browser/popup = new(user, "lastsignalers", "Last Signallers", 800, 500) + popup.set_content(dat) + popup.open() diff --git a/code/modules/admin/verbs/check_customitem_activity.dm b/code/modules/admin/verbs/check_customitem_activity.dm index 2be186df2c2..5a2493a6145 100644 --- a/code/modules/admin/verbs/check_customitem_activity.dm +++ b/code/modules/admin/verbs/check_customitem_activity.dm @@ -21,7 +21,9 @@ var/inactive_keys = "None
" else dat += "Populate list (requires an active database connection)
" - usr << browse("[dat]", "window=inactive_customitems;size=600x480") + var/datum/browser/popup = new(src, "inactive_customitems", "Inactive Custom Items", 600, 480) + popup.set_content(dat) + popup.open() /proc/populate_inactive_customitems_list(var/client/C) set background = 1 diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 819d72cd0f4..f8be0fb79aa 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -23,7 +23,7 @@ else inactive_on_main_station++ - var/output = {"AIR SYSTEMS REPORT
+ var/output = {"AIR SYSTEMS REPORT
General Processing Data
Cycle: [SSair.current_cycle]
Groups: [SSair.zones.len]
@@ -36,10 +36,12 @@ Hotspot Processing: [hotspots]

Geometry Processing Data
- Tile Update: [SSair.tiles_to_update.len]
+ Tile Update: [SSair.tiles_to_update.len]
"} - usr << browse(output,"window=airreport") + var/datum/browser/popup = new(src, "airreport", "Airreport") + popup.set_content(output) + popup.open() /client/proc/fix_next_move() set category = "Debug.Game" @@ -95,7 +97,9 @@ else output += "    [device]
" - usr << browse("[output]","window=radioreport") + var/datum/browser/popup = new(src, "radioreport", "Radioreport") + popup.set_content(output) + popup.open() feedback_add_details("admin_verb","RR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/reload_admins() diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 9db6d3042cb..70d4216a34b 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -78,7 +78,7 @@ GLOBAL_LIST_BOILERPLATE(all_debugging_effects, /obj/effect/debugging) for(var/obj/machinery/camera/C in cameranet.cameras) CL += C - var/output = {""} + span_bold("CAMERA ANNOMALITIES REPORT") + {"
+ var/output = span_bold("CAMERA ANNOMALITIES REPORT") + {"
"} + span_bold("The following annomalities have been detected. The ones in red need immediate attention: Some of those in black may be intentional.") + {"
" - usr << browse("[output]","window=airreport;size=1000x500") + + var/datum/browser/popup = new(src, "airreport", "Airreport", 1000, 500) + popup.set_content(output) + popup.open() feedback_add_details("admin_verb","mCRP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/intercom_view() diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index d2003d34b09..b7b531c2cc4 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -27,9 +27,10 @@ dat += span_bold("Charge progress: [reload]/180:") + "
" dat += "Open Fire
" dat += "Deployment of weapon authorized by
[using_map.company_name] Naval Command

Remember, friendly fire is grounds for termination of your contract and life.
" - user << browse("[dat]", "window=scroll") - onclose(user, "scroll") - return + + var/datum/browser/popup = new(user, "artillery", "Artillery") + popup.set_content(dat) + popup.open() /obj/machinery/artillerycontrol/Topic(href, href_list) ..() diff --git a/code/modules/economy/money_bag.dm b/code/modules/economy/money_bag.dm index d515a1249bd..aff6d6ca7fe 100644 --- a/code/modules/economy/money_bag.dm +++ b/code/modules/economy/money_bag.dm @@ -43,7 +43,10 @@ dat += text("Phoron coins: [amt_phoron] Remove one
") if (amt_uranium) dat += text("Uranium coins: [amt_uranium] Remove one
") - user << browse("[dat]", "window=moneybag") + + var/datum/browser/popup = new(user, "moneybag", "Moneybag") + popup.set_content(dat) + popup.open() /obj/item/moneybag/attackby(obj/item/W, mob/user) ..() diff --git a/code/modules/economy/retail_scanner.dm b/code/modules/economy/retail_scanner.dm index 35c6f4baa88..02914c1cfbb 100644 --- a/code/modules/economy/retail_scanner.dm +++ b/code/modules/economy/retail_scanner.dm @@ -88,11 +88,10 @@ dat += "
" dat += "Device ID: [machine_id]" - dat = "Retail Scanner[dat]" - - user << browse(dat, "window=retail;size=350x500") - onclose(user, "retail") - + var/datum/browser/popup = new(user, "retail", "Retail", 350, 500) + popup.add_head_content("Retail Scanner") + popup.set_content(dat) + popup.open() /obj/item/retail_scanner/Topic(var/href, var/href_list) if(..()) diff --git a/code/modules/integrated_electronics/core/special_pins/list_pin.dm b/code/modules/integrated_electronics/core/special_pins/list_pin.dm index ae3ae806a30..40fcc73adf4 100644 --- a/code/modules/integrated_electronics/core/special_pins/list_pin.dm +++ b/code/modules/integrated_electronics/core/special_pins/list_pin.dm @@ -22,7 +22,10 @@ t += "#[i] | [display_data(line)] | " t += "\[Edit\] | " t += "\[Remove\]
" - user << browse("[t]", "window=list_pin_\ref[src];size=500x400") + + var/datum/browser/popup = new(user, "list_pin_\ref[src]", null, 500, 400) + popup.set_content(t) + popup.open() /datum/integrated_io/list/proc/add_to_list(mob/user, var/new_entry) if(!new_entry && user) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index e6a55c78525..6b50dfbbf1c 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -204,9 +204,9 @@ Book Cart End to_chat(user, "This book is completely blank!") /obj/item/book/proc/display_content(mob/living/user) - if(!findtext(dat, regex("^", "Penned by [author].
"), "window=book") + var/datum/browser/popup = new(user, "book", "Penned by [author].") + popup.set_content(dat) + popup.open() /obj/item/book/attackby(obj/item/W, mob/user) if(carved) diff --git a/code/modules/mentor/mentorhelp.dm b/code/modules/mentor/mentorhelp.dm index 93c3d300a72..30967a8b80b 100644 --- a/code/modules/mentor/mentorhelp.dm +++ b/code/modules/mentor/mentorhelp.dm @@ -52,12 +52,15 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new) title = "Resolved Tickets" if(!l2b) return - var/list/dat = list("[title]") + var/list/dat = list() dat += "Refresh

" for(var/datum/mentor_help/MH as anything in l2b) dat += span_adminnotice(span_adminhelp("Ticket #[MH.id]") + " [MH.initiator_ckey]: [MH.name]") + "
" - dat += "" - usr << browse(dat.Join(), "window=mhelp_list[state];size=600x480") + + var/datum/browser/popup = new(usr, "mhelp_list[state]", "Mentor Help List", 600, 480) + popup.add_head_content("[title]") + popup.set_content(dat.Join()) + popup.open() //Tickets statpanel /datum/mentor_help_tickets/proc/stat_entry() @@ -269,7 +272,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/statclick/mticket_list) tgui_interact(usr.client.mob) /datum/mentor_help/proc/TicketPanelLegacy() - var/list/dat = list("Ticket #[id]") + var/list/dat = list() var/ref_src = "\ref[src]" dat += "

Mentor Help Ticket #[id]: [LinkedReplyName(ref_src)]

" dat += span_bold("State: ") @@ -294,8 +297,11 @@ INITIALIZE_IMMEDIATE(/obj/effect/statclick/mticket_list) dat += "
" + span_bold("Log:") + "

" for(var/I in _interactions) dat += "[I]
" - dat += "" - usr << browse(dat.Join(), "window=mhelp[id];size=620x480") + + var/datum/browser/popup = new(usr, "mhelp[id]", "Mento Help [id]", 620, 480) + popup.add_head_content("Ticket #[id]") + popup.set_content(dat.Join()) + popup.open() /datum/mentor_help/tgui_fallback(payload) if(..()) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index a3c5bce71e5..35e1621706b 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -382,7 +382,10 @@ var/list/_simple_mob_default_emotes = list( HTML += "
" HTML +="\[Done\]" HTML += "" - src << browse(HTML, "window=flavor_changes;size=430x300") + + var/datum/browser/popup = new(src, "flavor_changes", "Change Flavortexts", 430, 300) + popup.set_content(HTML) + popup.open() /mob/living/carbon/human/proc/toggle_tail(var/setting,var/message = 0) if(!tail_style || !tail_style.ani_state) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 2b01cc7204b..f98b62eed68 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -537,7 +537,9 @@ else dat += span_bold("Primarily [u_attack.attack_name]") + " - set default


" - src << browse("[dat]", "window=checkattack") + var/datum/browser/popup = new(src, "checkattack") + popup.set_content(dat) + popup.open() /mob/living/carbon/human/Topic(href, href_list) if(href_list["default_attk"]) @@ -555,7 +557,6 @@ /mob/living/carbon/human/proc/set_default_attack(var/datum/unarmed_attack/u_attack) default_attack = u_attack - /mob/living/carbon/human/proc/perform_cpr(var/mob/living/carbon/human/reviver) // Check for sanity if(!istype(reviver,/mob/living/carbon/human)) diff --git a/code/modules/mob/living/carbon/human/human_attackhand_vr.dm b/code/modules/mob/living/carbon/human/human_attackhand_vr.dm deleted file mode 100644 index fc19b5e4706..00000000000 --- a/code/modules/mob/living/carbon/human/human_attackhand_vr.dm +++ /dev/null @@ -1,63 +0,0 @@ -/mob/living/carbon/human - var/datum/unarmed_attack/default_attack - -/mob/living/carbon/human/verb/check_attacks() - set name = "Check Attacks" - set category = "IC.Game" - set src = usr - - var/dat = span_bold(span_giant("Known Attacks")) + "

" - - for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks) - dat += span_bold("Primarily [u_attack.attack_name] ") + "


" - - src << browse("[dat]", "window=checkattack") - return - -/mob/living/carbon/human/check_attacks() - var/dat = span_bold(span_giant("Known Attacks")) + "

" - - if(default_attack) - dat += "Current default attack: [default_attack.attack_name] - reset

" - - for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks) - if(u_attack == default_attack) - dat += span_bold("Primarily [u_attack.attack_name]") + " - default - reset


" - else - dat += span_bold("Primarily [u_attack.attack_name]") + " - set default


" - - src << browse("[dat]", "window=checkattack") - -/mob/living/carbon/human/Topic(href, href_list) - if(href_list["default_attk"]) - if(href_list["default_attk"] == "reset_attk") - set_default_attack(null) - else - var/datum/unarmed_attack/u_attack = locate(href_list["default_attk"]) - if(u_attack && (u_attack in species.unarmed_attacks)) - set_default_attack(u_attack) - check_attacks() - return 1 - else - return ..() - -/mob/living/carbon/human/proc/set_default_attack(var/datum/unarmed_attack/u_attack) - default_attack = u_attack - -/datum/unarmed_attack - var/attack_name = "fist" - -/datum/unarmed_attack - bite/attack_name = "bite" - bite/sharp/attack_name = "sharp bite" - bite/strong/attack_name = "strong bite" - punch/attack_name = "punch" - kick/attack_name = "kick" - stomp/attack_name = "stomp" - stomp/weak/attack_name = "weak stomp" - light_strike/attack_name = "light hit" - diona attack_name = "tendrils" - claws/attack_name = "claws" - claws/strong/attack_name = "strong claws" - slime_glomp/attack_name = "glomp" - bite/sharp/numbing/attack_name = "numbing bite" diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm index d4a826087d9..c685c85fbf4 100644 --- a/code/modules/mob/living/carbon/human/human_species.dm +++ b/code/modules/mob/living/carbon/human/human_species.dm @@ -3,6 +3,7 @@ status_flags = GODMODE|CANPUSH has_huds = FALSE blocks_emissive = FALSE + no_vore = TRUE //Dummies don't need bellies. /mob/living/carbon/human/dummy/Initialize(mapload) . = ..() @@ -148,3 +149,43 @@ /mob/living/carbon/human/stok/Initialize(mapload) . = ..(mapload, SPECIES_MONKEY_UNATHI) species.produceCopy(species.traits.Copy(),src,null,FALSE) + +/mob/living/carbon/human/sergal/Initialize(mapload) + h_style = "Sergal Plain" + . = ..(mapload, SPECIES_SERGAL) + +/mob/living/carbon/human/akula/Initialize(mapload) + . = ..(mapload, SPECIES_AKULA) + +/mob/living/carbon/human/nevrean/Initialize(mapload) + . = ..(mapload, SPECIES_NEVREAN) + +/mob/living/carbon/human/xenochimera/Initialize(mapload) + . = ..(mapload, SPECIES_XENOCHIMERA) + +/mob/living/carbon/human/spider/Initialize(mapload) + . = ..(mapload, SPECIES_VASILISSAN) + +/mob/living/carbon/human/vulpkanin/Initialize(mapload) + . = ..(mapload, SPECIES_VULPKANIN) + +/mob/living/carbon/human/protean/Initialize(mapload) + . = ..(mapload, SPECIES_PROTEAN) + +/mob/living/carbon/human/alraune/Initialize(mapload) + . = ..(mapload, SPECIES_ALRAUNE) + +/mob/living/carbon/human/shadekin/Initialize(mapload) + . = ..(mapload, SPECIES_SHADEKIN) + +/mob/living/carbon/human/altevian/Initialize(mapload) + . = ..(mapload, SPECIES_ALTEVIAN) + +/mob/living/carbon/human/lleill/Initialize(mapload) + . = ..(mapload, SPECIES_LLEILL) + +/mob/living/carbon/human/hanner/Initialize(mapload) + . = ..(mapload, SPECIES_HANNER) + +/mob/living/carbon/human/sparkledog/Initialize(mapload) + . = ..(mapload, SPECIES_SPARKLE) diff --git a/code/modules/mob/living/carbon/human/human_species_vr.dm b/code/modules/mob/living/carbon/human/human_species_vr.dm deleted file mode 100644 index be2d418ddb8..00000000000 --- a/code/modules/mob/living/carbon/human/human_species_vr.dm +++ /dev/null @@ -1,42 +0,0 @@ -/mob/living/carbon/human/dummy - no_vore = TRUE //Dummies don't need bellies. - -/mob/living/carbon/human/sergal/Initialize(mapload) - h_style = "Sergal Plain" - . = ..(mapload, SPECIES_SERGAL) - -/mob/living/carbon/human/akula/Initialize(mapload) - . = ..(mapload, SPECIES_AKULA) - -/mob/living/carbon/human/nevrean/Initialize(mapload) - . = ..(mapload, SPECIES_NEVREAN) - -/mob/living/carbon/human/xenochimera/Initialize(mapload) - . = ..(mapload, SPECIES_XENOCHIMERA) - -/mob/living/carbon/human/spider/Initialize(mapload) - . = ..(mapload, SPECIES_VASILISSAN) - -/mob/living/carbon/human/vulpkanin/Initialize(mapload) - . = ..(mapload, SPECIES_VULPKANIN) - -/mob/living/carbon/human/protean/Initialize(mapload) - . = ..(mapload, SPECIES_PROTEAN) - -/mob/living/carbon/human/alraune/Initialize(mapload) - . = ..(mapload, SPECIES_ALRAUNE) - -/mob/living/carbon/human/shadekin/Initialize(mapload) - . = ..(mapload, SPECIES_SHADEKIN) - -/mob/living/carbon/human/altevian/Initialize(mapload) - . = ..(mapload, SPECIES_ALTEVIAN) - -/mob/living/carbon/human/lleill/Initialize(mapload) - . = ..(mapload, SPECIES_LLEILL) - -/mob/living/carbon/human/hanner/Initialize(mapload) - . = ..(mapload, SPECIES_HANNER) - -/mob/living/carbon/human/sparkledog/Initialize(mapload) - . = ..(mapload, SPECIES_SPARKLE) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities.dm index 7de1d50c005..febf1716f9f 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities.dm @@ -1082,7 +1082,7 @@ to_chat(src, span_notice("You will [trait_injection_verb] your targets.")) return if(choice == "Chemical Refresher") - var/output = {""} + span_bold("Chemical Refresher!") + {"
+ var/output = {"
"} + span_bold("Options for venoms") + {"

"} + span_bold("Size Chemicals") + {"
@@ -1111,7 +1111,10 @@ You can also bite synthetics, but due to how synths work, they won't have anything injected into them.
"} - src << browse("[output]","window=chemicalrefresher") + + var/datum/browser/popup = new(src, "chemicalrefresher", "Chemical Refresher") + popup.set_content(output) + popup.open() return else var/list/targets = list() //IF IT IS NOT BROKEN. DO NOT FIX IT. AND KEEP COPYPASTING IT (Pointing Rick Dalton: "That's my code!" ~CL) diff --git a/code/modules/xenoarcheaology/tools/artifact_harvester.dm b/code/modules/xenoarcheaology/tools/artifact_harvester.dm index a3a3abcb0eb..5947cc9b45c 100644 --- a/code/modules/xenoarcheaology/tools/artifact_harvester.dm +++ b/code/modules/xenoarcheaology/tools/artifact_harvester.dm @@ -297,138 +297,3 @@ inserted_battery.battery_effect.ToggleActivate() src.visible_message(span_bold("[name]") + " states, \"Battery dump completed.\"") icon_state = "incubator" -/* //This is old and unused. -/obj/machinery/artifact_harvester/Topic(href, href_list) - - if (href_list["harvest"]) - if(!inserted_battery) - src.visible_message(span_bold("[src]") + " states, \"Cannot harvest. No battery inserted.\"") - - else if(inserted_battery.stored_charge >= inserted_battery.capacity) - src.visible_message(span_bold("[src]") + " states, \"Cannot harvest. battery is full.\"") - - else - - //locate artifact on analysis pad - cur_artifact = null - var/articount = 0 - var/obj/machinery/artifact/analysed - for(var/obj/A in get_turf(owned_scanner)) - analysed = A - articount++ - - if(articount <= 0) - var/message = span_bold("[src]") + " states, \"Cannot harvest. No noteworthy energy signature isolated.\"" - src.visible_message(message) - - else if(analysed && analysed.being_used) - src.visible_message(span_bold("[src]") + " states, \"Cannot harvest. Source already being harvested.\"") - - else - if(articount > 1) - state("Cannot harvest. Too many artifacts on the pad.") - else if(analysed) - cur_artifact = analysed - - //if both effects are active, we can't harvest either - var/datum/component/artifact_master/ScannedMaster = analysed.GetComponent(/datum/component/artifact_master) - if(ScannedMaster && istype(ScannedMaster)) - active_effects = ScannedMaster.get_all_effects() - var/list/active_effects = ScannedMaster.artifact_id.get_active_effects() - - if(active_effects.len > 1) - src.visible_message(span_bold("[src]") + " states, \"Cannot harvest. Source is emitting conflicting energy signatures.\"") - else if(!active_effects.len) - src.visible_message(span_bold("[src]") + " states, \"Cannot harvest. No energy emitting from source.\"") - - else - //see if we can clear out an old effect - //delete it when the ids match to account for duplicate ids having different effects - if(inserted_battery.battery_effect && inserted_battery.stored_charge <= 0) - qdel(inserted_battery.battery_effect) - inserted_battery.battery_effect = null - - // - var/datum/artifact_effect/source_effect - var/datum/artifact_effect/active_effect = active_effects[1] - - //if we already have charge in the battery, we can only recharge it from the source artifact - if(inserted_battery.stored_charge > 0) - var/battery_matches_primary_id = 0 - if(inserted_battery.battery_effect && inserted_battery.battery_effect.artifact_id == cur_artifact.artifact_master.artifact_id) - battery_matches_primary_id = 1 - if(battery_matches_primary_id && active_effect.activated) - //we're good to recharge the primary effect! - source_effect = active_effect - - if(!source_effect) - src.visible_message(span_bold("[src]") + " states, \"Cannot harvest. Battery is charged with a different energy signature.\"") - else - //we're good to charge either - if(active_effect.activated) - //charge the primary effect - source_effect = active_effect - - if(source_effect) - harvesting = 1 - update_use_power(USE_POWER_ACTIVE) - cur_artifact.anchored = 1 - cur_artifact.being_used = 1 - icon_state = "incubator_on" - var/message = span_bold("[src]") + " states, \"Beginning energy harvesting.\"" - src.visible_message(message) - last_process = world.time - - //duplicate the artifact's effect datum - if(!inserted_battery.battery_effect) - var/effecttype = source_effect.type - var/datum/artifact_effect/E = new effecttype(inserted_battery) - - //duplicate it's unique settings - for(var/varname in list("chargelevelmax","artifact_id","effect","effectrange","trigger")) - E.vars[varname] = source_effect.vars[varname] - - //copy the new datum into the battery - inserted_battery.battery_effect = E - inserted_battery.stored_charge = 0 - - if (href_list["stopharvest"]) - if(harvesting) - if(harvesting < 0 && inserted_battery.battery_effect && inserted_battery.battery_effect.activated) - inserted_battery.battery_effect.ToggleActivate() - harvesting = 0 - cur_artifact.anchored = 0 - cur_artifact.being_used = 0 - cur_artifact = null - src.visible_message(span_bold("[name]") + " states, \"Energy harvesting interrupted.\"") - icon_state = "incubator" - - if (href_list["ejectbattery"]) - src.inserted_battery.loc = src.loc - src.inserted_battery = null - - if (href_list["drainbattery"]) - if(inserted_battery) - if(inserted_battery.battery_effect && inserted_battery.stored_charge > 0) - if(tgui_alert(usr, "This action will dump all charge, safety gear is recommended before proceeding","Warning",list("Continue","Cancel")) == "Continue") - if(!inserted_battery.battery_effect.activated) - inserted_battery.battery_effect.ToggleActivate(1) - last_process = world.time - harvesting = -1 - update_use_power(USE_POWER_ACTIVE) - icon_state = "incubator_on" - var/message = span_bold("[src]") + " states, \"Warning, battery charge dump commencing.\"" - src.visible_message(message) - else - var/message = span_bold("[src]") + " states, \"Cannot dump energy. Battery is drained of charge already.\"" - src.visible_message(message) - else - var/message = span_bold("[src]") + " states, \"Cannot dump energy. No battery inserted.\"" - src.visible_message(message) - - if(href_list["close"]) - usr << browse(null, "window=artharvester") - usr.unset_machine(src) - - updateDialog() -*/ diff --git a/vorestation.dme b/vorestation.dme index a14ae7ee9aa..304bc31fd33 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3188,7 +3188,6 @@ #include "code\modules\mob\living\carbon\human\human_powers_vr.dm" #include "code\modules\mob\living\carbon\human\human_resist.dm" #include "code\modules\mob\living\carbon\human\human_species.dm" -#include "code\modules\mob\living\carbon\human\human_species_vr.dm" #include "code\modules\mob\living\carbon\human\inventory.dm" #include "code\modules\mob\living\carbon\human\life.dm" #include "code\modules\mob\living\carbon\human\life_vr.dm"