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"