diff --git a/code/datums/helper_datums/topic_input.dm b/code/datums/helper_datums/topic_input.dm
deleted file mode 100644
index d07aec067e..0000000000
--- a/code/datums/helper_datums/topic_input.dm
+++ /dev/null
@@ -1,62 +0,0 @@
-/datum/topic_input
- var/href
- var/list/href_list
-
-/datum/topic_input/New(thref,list/thref_list)
- href = thref
- href_list = thref_list.Copy()
- return
-
-/datum/topic_input/proc/get(i)
- return listgetindex(href_list,i)
-
-/datum/topic_input/proc/getAndLocate(i)
- var/t = get(i)
- if(t)
- t = locate(t)
- if (istext(t))
- t = null
- return t || null
-
-/datum/topic_input/proc/getNum(i)
- var/t = get(i)
- if(t)
- t = text2num(t)
- return isnum(t) ? t : null
-
-/datum/topic_input/proc/getObj(i)
- var/t = getAndLocate(i)
- return isobj(t) ? t : null
-
-/datum/topic_input/proc/getMob(i)
- var/t = getAndLocate(i)
- return ismob(t) ? t : null
-
-/datum/topic_input/proc/getTurf(i)
- var/t = getAndLocate(i)
- return isturf(t) ? t : null
-
-/datum/topic_input/proc/getAtom(i)
- return getType(i, /atom)
-
-/datum/topic_input/proc/getArea(i)
- var/t = getAndLocate(i)
- return isarea(t) ? t : null
-
-/datum/topic_input/proc/getStr(i)//params should always be text, but...
- var/t = get(i)
- return istext(t) ? t : null
-
-/datum/topic_input/proc/getType(i,type)
- var/t = getAndLocate(i)
- return istype(t,type) ? t : null
-
-/datum/topic_input/proc/getPath(i)
- var/t = get(i)
- if(t)
- t = text2path(t)
- return ispath(t) ? t : null
-
-/datum/topic_input/proc/getList(i)
- var/t = getAndLocate(i)
- return islist(t) ? t : null
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index c850e046a6..460537ecf6 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -108,16 +108,17 @@
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Topic(href,href_list)
..()
- var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
- if(afilter.get("eject"))
+ if(href_list["eject"])
go_out()
- if(afilter.get("view_stats"))
+ if(href_list["view_stats"])
chassis.occupant << browse(get_patient_stats(),"window=msleeper")
onclose(chassis.occupant, "msleeper")
return
- if(afilter.get("inject"))
- inject_reagent(afilter.getType("inject", /datum/reagent),afilter.getObj("source"))
- return
+ if(href_list["inject"])
+ var/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/SG = locate() in chassis
+ var/datum/reagent/R = locate(href_list["inject"]) in SG.reagents.reagent_list
+ if (istype(R))
+ inject_reagent(R, SG)
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_stats()
if(!patient)
@@ -354,19 +355,18 @@
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Topic(href,href_list)
..()
- var/datum/topic_input/afilter = new (href,href_list)
- if(afilter.get("toggle_mode"))
+ if (href_list["toggle_mode"])
mode = !mode
update_equip_info()
return
- if(afilter.get("select_reagents"))
+ if (href_list["select_reagents"])
processed_reagents.len = 0
var/m = 0
var/message
for(var/i=1 to known_reagents.len)
if(m>=synth_speed)
break
- var/reagent = afilter.get("reagent_[i]")
+ var/reagent = text2path(href_list["reagent_[i]"])
if(reagent && (reagent in known_reagents))
message = "[m ? ", " : null][known_reagents[reagent]]"
processed_reagents += reagent
@@ -375,20 +375,18 @@
message += " added to production"
START_PROCESSING(SSobj, src)
occupant_message(message)
- occupant_message("Reagent processing started.")
+ occupant_message("Reagent processing started.")
log_message("Reagent processing started.")
return
- if(afilter.get("show_reagents"))
+ if (href_list["show_reagents"])
chassis.occupant << browse(get_reagents_page(),"window=msyringegun")
- if(afilter.get("purge_reagent"))
- var/reagent = afilter.get("purge_reagent")
+ if (href_list["purge_reagent"])
+ var/reagent = href_list["purge_reagent"]
if(reagent)
reagents.del_reagent(reagent)
return
- if(afilter.get("purge_all"))
+ if (href_list["purge_all"])
reagents.clear_reagents()
- return
- return
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_reagents_page()
var/output = {"
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 98e4eb4258..caaa11ac9c 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -317,9 +317,8 @@
/obj/machinery/mecha_part_fabricator/Topic(href, href_list)
if(..())
return
- var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
if(href_list["part_set"])
- var/tpart_set = afilter.getStr("part_set")
+ var/tpart_set = href_list["part_set"]
if(tpart_set)
if(tpart_set=="clear")
part_set = null
@@ -327,7 +326,7 @@
part_set = tpart_set
screen = "parts"
if(href_list["part"])
- var/T = afilter.getStr("part")
+ var/T = href_list["part_set"]
for(var/v in stored_research.researched_designs)
var/datum/design/D = SSresearch.techweb_design_by_id(v)
if(D.build_type & MECHFAB)
@@ -338,7 +337,7 @@
add_to_queue(D)
break
if(href_list["add_to_queue"])
- var/T = afilter.getStr("add_to_queue")
+ var/T = href_list["part_set"]
for(var/v in stored_research.researched_designs)
var/datum/design/D = SSresearch.techweb_design_by_id(v)
if(D.build_type & MECHFAB)
@@ -347,10 +346,10 @@
break
return update_queue_on_page()
if(href_list["remove_from_queue"])
- remove_from_queue(afilter.getNum("remove_from_queue"))
+ remove_from_queue(text2num(href_list["remove_from_queue"]))
return update_queue_on_page()
if(href_list["partset_to_queue"])
- add_part_set_to_queue(afilter.get("partset_to_queue"))
+ add_part_set_to_queue(text2num(href_list["remove_from_queue"]))
return update_queue_on_page()
if(href_list["process_queue"])
spawn(0)
@@ -364,8 +363,8 @@
if(href_list["screen"])
screen = href_list["screen"]
if(href_list["queue_move"] && href_list["index"])
- var/index = afilter.getNum("index")
- var/new_index = index + afilter.getNum("queue_move")
+ var/index = text2num(href_list["index"])
+ var/new_index = index + text2num(href_list["queue_move"])
if(isnum(index) && isnum(new_index) && ISINTEGER(index) && ISINTEGER(new_index))
if(ISINRANGE(new_index,1,queue.len))
queue.Swap(index,new_index)
@@ -376,7 +375,7 @@
if(href_list["sync"])
sync()
if(href_list["part_desc"])
- var/T = afilter.getStr("part_desc")
+ var/T = href_list["part_desc"]
for(var/v in stored_research.researched_designs)
var/datum/design/D = SSresearch.techweb_design_by_id(v)
if(D.build_type & MECHFAB)
diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm
index 0188419f0f..61e6c8e5e4 100644
--- a/code/game/mecha/mecha_control_console.dm
+++ b/code/game/mecha/mecha_control_console.dm
@@ -39,21 +39,24 @@
/obj/machinery/computer/mecha/Topic(href, href_list)
if(..())
return
- var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
if(href_list["send_message"])
- var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("send_message")
+ var/obj/item/mecha_parts/mecha_tracking/MT = locate(href_list["send_message"])
+ if (!istype(MT))
+ return
var/message = stripped_input(usr,"Input message","Transmit message")
var/obj/mecha/M = MT.in_mecha()
if(trim(message) && M)
M.occupant_message(message)
return
if(href_list["shock"])
- var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("shock")
- MT.shock()
+ var/obj/item/mecha_parts/mecha_tracking/MT = locate(href_list["shock"])
+ if (istype(MT))
+ MT.shock()
if(href_list["get_log"])
- var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("get_log")
- stored_data = MT.get_mecha_log()
- screen = 1
+ var/obj/item/mecha_parts/mecha_tracking/MT = locate(href_list["get_log"])
+ if(istype(MT))
+ stored_data = MT.get_mecha_log()
+ screen = 1
if(href_list["return"])
screen = 0
updateUsrDialog()
diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm
index f9e04990fc..0359541964 100644
--- a/code/game/mecha/mecha_topic.dm
+++ b/code/game/mecha/mecha_topic.dm
@@ -224,70 +224,70 @@
var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
if(in_range(src, usr))
+ var/obj/item/card/id/id_card
+ if (href_list["id_card"])
+ id_card = locate(href_list["id_card"])
+ if (!istype(id_card))
+ return
if(href_list["req_access"] && add_req_access)
- output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user"))
+ output_access_dialog(id_card, usr)
if(href_list["maint_access"] && maint_access)
- var/mob/user = afilter.getMob("user")
- if(user)
- if(state==0)
- state = 1
- to_chat(user, "The securing bolts are now exposed.")
- else if(state==1)
- state = 0
- to_chat(user, "The securing bolts are now hidden.")
- output_maintenance_dialog(afilter.getObj("id_card"),user)
+ if(state==0)
+ state = 1
+ to_chat(usr, "The securing bolts are now exposed.")
+ else if(state==1)
+ state = 0
+ to_chat(usr, "The securing bolts are now hidden.")
+ output_maintenance_dialog(id_card, usr)
if(href_list["set_internal_tank_valve"] && state >=1)
- var/mob/user = afilter.getMob("user")
- if(user)
- var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num
- if(new_pressure)
- internal_tank_valve = new_pressure
- to_chat(user, "The internal pressure valve has been set to [internal_tank_valve]kPa.")
+ var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num
+ if(new_pressure)
+ internal_tank_valve = new_pressure
+ to_chat(usr, "The internal pressure valve has been set to [internal_tank_valve]kPa.")
- if(href_list["add_req_access"] && add_req_access && afilter.getObj("id_card"))
- operation_req_access += afilter.getNum("add_req_access")
- output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user"))
+ if(href_list["add_req_access"] && add_req_access)
+ operation_req_access += text2num(href_list["add_req_access"])
+ output_access_dialog(id_card, usr)
if(href_list["del_req_access"] && add_req_access && afilter.getObj("id_card"))
- operation_req_access -= afilter.getNum("del_req_access")
- output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user"))
+ operation_req_access -= text2num(href_list["add_req_access"])
+ output_access_dialog(id_card, usr)
if(href_list["finish_req_access"])
add_req_access = 0
- var/mob/user = afilter.getMob("user")
- user << browse(null,"window=exosuit_add_access")
+ usr << browse(null,"window=exosuit_add_access")
if(usr != occupant)
return
if(href_list["update_content"])
- send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part())
+ send_byjax(usr,"exosuit.browser","content",src.get_stats_part())
if(href_list["select_equip"])
- var/obj/item/mecha_parts/mecha_equipment/equip = afilter.getObj("select_equip")
+ var/obj/item/mecha_parts/mecha_equipment/equip = locate(href_list["select_equip"]) in src
if(equip && equip.selectable)
- src.selected = equip
- src.occupant_message("You switch to [equip]")
- src.visible_message("[src] raises [equip]")
- send_byjax(src.occupant,"exosuit.browser","eq_list",src.get_equipment_list())
+ selected = equip
+ occupant_message("You switch to [equip]")
+ visible_message("[src] raises [equip]")
+ send_byjax(usr, "exosuit.browser","eq_list", get_equipment_list())
if(href_list["rmictoggle"])
radio.broadcasting = !radio.broadcasting
- send_byjax(src.occupant,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged"))
+ send_byjax(usr,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged"))
if(href_list["rspktoggle"])
radio.listening = !radio.listening
- send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged"))
+ send_byjax(usr,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged"))
if(href_list["rfreq"])
- var/new_frequency = (radio.frequency + afilter.getNum("rfreq"))
+ var/new_frequency = (radio.frequency + text2num(href_list["rfreq"]))
if (!radio.freerange || (radio.frequency < MIN_FREE_FREQ || radio.frequency > MAX_FREE_FREQ))
new_frequency = sanitize_frequency(new_frequency)
radio.set_frequency(new_frequency)
- send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]")
+ send_byjax(usr,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]")
if (href_list["view_log"])
src.occupant << browse(src.get_log_html(), "window=exosuit_log")
@@ -302,14 +302,14 @@
if (href_list["toggle_id_upload"])
add_req_access = !add_req_access
- send_byjax(src.occupant,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel")
+ send_byjax(usr,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel")
if(href_list["toggle_maint_access"])
if(state)
occupant_message("Maintenance protocols in effect")
return
maint_access = !maint_access
- send_byjax(src.occupant,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols")
+ send_byjax(usr,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols")
if (href_list["toggle_port_connection"])
if(internal_tank.connected_port)
diff --git a/tgstation.dme b/tgstation.dme
index 8fda1f85cb..bc555735d0 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -483,7 +483,6 @@
#include "code\datums\helper_datums\getrev.dm"
#include "code\datums\helper_datums\icon_snapshot.dm"
#include "code\datums\helper_datums\teleport.dm"
-#include "code\datums\helper_datums\topic_input.dm"
#include "code\datums\looping_sounds\_looping_sound.dm"
#include "code\datums\looping_sounds\item_sounds.dm"
#include "code\datums\looping_sounds\machinery_sounds.dm"