diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 347bb920016..d14a3b77ac9 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -196,8 +196,10 @@
for(var/mob/O in player_list)
if(istype(O, /mob/living/silicon/ai))
var/mob/living/silicon/ai/AI = O
- if(U.name == "Unknown") AI << "[U] holds \a [itemname] up to one of your cameras ..."
- else AI << "[U] holds \a [itemname] up to one of your cameras ..."
+ if(U.name == "Unknown")
+ AI << "[U] holds \a [itemname] up to one of your cameras ..."
+ else
+ AI << "[U] holds \a [itemname] up to one of your cameras ..."
AI.last_paper_seen = "
[itemname][info]"
else if (O.client && O.client.eye == src)
O << "[U] holds \a [itemname] up to one of the cameras ..."
diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index dd7eb081ded..95664e9a49f 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -98,7 +98,7 @@
return targets
-/mob/living/silicon/ai/verb/ai_camera_track(var/target_name as null|anything in trackable_mobs())
+/mob/living/silicon/ai/verb/ai_camera_track(var/target_name in trackable_mobs())
set name = "track"
set hidden = 1 //Don't display it on the verb lists. This verb exists purely so you can type "track Oldman Robustin" and follow his ass
@@ -112,7 +112,6 @@
/mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob)
if(!istype(target)) return
var/mob/living/silicon/ai/U = usr
-
U.cameraFollow = target
//U << text("Now tracking [] on camera.", target.name)
//if (U.machine == null)
diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm
index 3f677d16775..756259e5012 100644
--- a/code/game/machinery/computer/robot.dm
+++ b/code/game/machinery/computer/robot.dm
@@ -111,7 +111,7 @@
R.SetLockdown(!R.lockcharge)
R << "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]"
if(R.connected_ai)
- R.connected_ai << "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
"
+ R.connected_ai << "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
"
else
usr << "Access Denied."
diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm
index cc877492b58..defe129fca2 100644
--- a/code/game/machinery/telecomms/broadcasting.dm
+++ b/code/game/machinery/telecomms/broadcasting.dm
@@ -72,7 +72,6 @@
virt.job = job
virt.languages = AM.languages
virt.source = AM
- virt.faketrack = data == 4 ? 1 : 0
virt.radio = radio
virt.verb_say = verb_say
virt.verb_ask = verb_ask
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 169baa3a259..8bed318c4ad 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -182,31 +182,7 @@
usr << browse(null, "window=radio")
return
usr.set_machine(src)
- if (href_list["track"])
- var/mob/target = locate(href_list["track"])
- var/mob/living/silicon/ai/A = locate(href_list["track2"])
- if(A && target)
- A.ai_actual_track(target)
- return
-
- else if (href_list["faketrack"])
- var/mob/target = locate(href_list["track"])
- var/mob/living/silicon/ai/A = locate(href_list["track2"])
- if(A && target)
-
- A:cameraFollow = target
- A << text("Now tracking [] on camera.", target.name)
- if (usr.machine == null)
- usr.machine = usr
-
- while (usr:cameraFollow == target)
- usr << "Target is not on or near any active cameras on the station. We'll check again in 5 seconds (unless you use the cancel-camera verb)."
- sleep(40)
- continue
-
- return
-
- else if (href_list["freq"])
+ if (href_list["freq"])
if (!freqlock)
var/new_frequency = (frequency + text2num(href_list["freq"]))
if (!freerange || (frequency < 1200 || frequency > 1600))
diff --git a/code/game/say.dm b/code/game/say.dm
index 5d6d0eb6d65..0024ab48136 100644
--- a/code/game/say.dm
+++ b/code/game/say.dm
@@ -54,7 +54,7 @@ var/list/freqtospan = list(
//Message
var/messagepart = " [lang_treat(speaker, message_langs, raw_message, spans)]"
- return "[spanpart1][spanpart2][freqpart][compose_track_href(speaker, message_langs, raw_message, radio_freq)][namepart][compose_job(speaker, message_langs, raw_message, radio_freq)][endspanpart][messagepart]"
+ return "[spanpart1][spanpart2][freqpart][compose_track_href(speaker, namepart)][namepart][compose_job(speaker, message_langs, raw_message, radio_freq)][endspanpart][messagepart]"
/atom/movable/proc/compose_track_href(atom/movable/speaker, message_langs, raw_message, radio_freq)
return ""
@@ -146,8 +146,6 @@ var/list/freqtospan = list(
/atom/movable/proc/GetJob() //Get a job, you lazy butte
-/atom/movable/proc/GetTrack()
-
/atom/movable/proc/GetSource()
/atom/movable/proc/GetRadio()
@@ -155,16 +153,12 @@ var/list/freqtospan = list(
//VIRTUALSPEAKERS
/atom/movable/virtualspeaker
var/job
- var/faketrack
var/atom/movable/source
var/obj/item/device/radio/radio
/atom/movable/virtualspeaker/GetJob()
return job
-/atom/movable/virtualspeaker/GetTrack()
- return faketrack
-
/atom/movable/virtualspeaker/GetSource()
return source
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index c3269390c52..6a2fcc2efff 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -370,7 +370,6 @@ var/list/ai_list = list()
return
-
/mob/living/silicon/ai/Topic(href, href_list)
if(usr != src)
return
@@ -394,55 +393,52 @@ var/list/ai_list = list()
if(last_paper_seen)
src << browse(last_paper_seen, "window=show_paper")
//Carn: holopad requests
- if (href_list["jumptoholopad"])
+ if(href_list["jumptoholopad"])
var/obj/machinery/hologram/holopad/H = locate(href_list["jumptoholopad"])
if(stat == CONSCIOUS)
if(H)
H.attack_ai(src) //may as well recycle
else
src << "Unable to locate the holopad."
- if (href_list["track"])
- var/mob/target = locate(href_list["track"]) in mob_list
- var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list
- if(A && target)
- A.ai_actual_track(target)
+ if(href_list["track"])
+ var/string = href_list["track"]
+ trackable_mobs()
+ var/list/trackeable = list()
+ trackeable += track.humans + track.others
+ var/list/target = list()
+ for(var/I in trackeable)
+ var/mob/M = trackeable[I]
+ if(M.name == string)
+ target += M
+ if(name == string)
+ target += src
+ if(target.len)
+ ai_actual_track(pick(target))
+ else
+ src << "Target is not on or near any active cameras on the station."
return
-
- if (href_list["callbot"]) //Command a bot to move to a selected location.
+ if(href_list["callbot"]) //Command a bot to move to a selected location.
Bot = locate(href_list["callbot"]) in SSbot.processing
if(!Bot || Bot.remote_disabled || src.control_disabled)
return //True if there is no bot found, the bot is manually emagged, or the AI is carded with wireless off.
waypoint_mode = 1
src << "Set your waypoint by clicking on a valid location free of obstructions."
return
-
- if (href_list["interface"]) //Remotely connect to a bot!
+ if(href_list["interface"]) //Remotely connect to a bot!
Bot = locate(href_list["interface"]) in SSbot.processing
if(!Bot || Bot.remote_disabled || src.control_disabled)
return
Bot.attack_ai(src)
-
- if (href_list["botrefresh"]) //Refreshes the bot control panel.
+ if(href_list["botrefresh"]) //Refreshes the bot control panel.
botcall()
return
-
- else if (href_list["faketrack"])
- var/mob/target = locate(href_list["track"]) in mob_list
- var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list
+ if(href_list["track"])
+ var/mob/target = locate(href_list["track"])
+ var/mob/living/silicon/ai/A = locate(href_list["track2"])
+ world << "radio"
if(A && target)
-
- A.cameraFollow = target
- A << "Now tracking [target.name] on camera."
- if (usr.machine == null)
- usr.machine = usr
-
- while (src.cameraFollow == target)
- usr << "Target is not on or near any active cameras on the station. We'll check again in 5 seconds (unless you use the cancel-camera verb)."
- sleep(40)
- continue
+ A.ai_actual_track(target)
return
- return
-
/mob/living/silicon/ai/bullet_act(var/obj/item/projectile/Proj)
..(Proj)
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index f448d22680b..e3cb5351877 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -4,15 +4,10 @@
return
..(message)
-/mob/living/silicon/ai/compose_track_href(atom/movable/speaker, message_langs, raw_message, radio_freq)
- //this proc assumes that the message originated from a radio. if the speaker is not a virtual speaker this will probably fuck up hard.
+/mob/living/silicon/ai/compose_track_href(atom/movable/speaker, namepart)
var/mob/M = speaker.GetSource()
- var/obj/item/device/radio = speaker.GetRadio()
if(M)
- var/faketrack = "byond://?src=\ref[radio];track2=\ref[src];track=\ref[M]"
- if(speaker.GetTrack())
- faketrack = "byond://?src=\ref[radio];track2=\ref[src];faketrack=\ref[M]"
- return ""
+ return ""
return ""
/mob/living/silicon/ai/compose_job(atom/movable/speaker, message_langs, raw_message, radio_freq)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 6b27200d447..72ffbf68fd2 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1041,7 +1041,7 @@
return
switch(notifytype)
if(1) //New Cyborg
- connected_ai << "
NOTICE - New cyborg connection detected: [name]
"
+ connected_ai << "
NOTICE - New cyborg connection detected: [name]
"
if(2) //New Module
connected_ai << "
NOTICE - Cyborg module change detected: [name] has loaded the [designation] module.
"
if(3) //New Name
diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm
index f15bf738781..ef2e3041aa1 100644
--- a/code/modules/mob/living/silicon/say.dm
+++ b/code/modules/mob/living/silicon/say.dm
@@ -15,7 +15,7 @@
for(var/mob/M in player_list)
if(M.binarycheck() || (M in dead_mob_list))
if(istype(M, /mob/living/silicon/ai))
- var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]"
+ var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]"
M << renderedAI
else
M << rendered
diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm
index 42c5c7aec40..c4f7cbcbcb9 100644
--- a/code/modules/scripting/Implementations/Telecomms.dm
+++ b/code/modules/scripting/Implementations/Telecomms.dm
@@ -331,7 +331,6 @@ datum/signal
var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null)
virt.name = source
virt.job = job
- virt.faketrack = 1
virt.languages = HUMAN
//END SAY REWRITE RELATED CODE.