From cec16d75595cf4904d744dc396186863515d077b Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 7 May 2015 14:48:18 +0100 Subject: [PATCH 1/2] Fixes cyborgs showing up as AIs in radio output for AIs. Also fixes pAIs and non-carbon non-robot non-AI non-pAI mobs doing the same. --- code/game/machinery/alarm.dm | 2 +- code/game/machinery/computer/atmos_control.dm | 2 +- code/modules/mob/mob_helpers.dm | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 32847060d2..7d9b605585 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -617,7 +617,7 @@ if(buildstage != 2) return STATUS_CLOSE - if(aidisabled && user.isAI()) + if(aidisabled && user.isMobAI()) user << "AI control for \the [src] interface has been disabled." return STATUS_CLOSE diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index d63259bc4c..069ec5e216 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -93,6 +93,6 @@ /datum/topic_state/air_alarm/href_list(var/mob/user) var/list/extra_href = list() extra_href["remote_connection"] = 1 - extra_href["remote_access"] = user && (user.isAI() || atmos_control.allowed(user) || atmos_control.emagged || air_alarm.rcon_setting == RCON_YES || (air_alarm.alarm_area.atmosalm && air_alarm.rcon_setting == RCON_AUTO)) + extra_href["remote_access"] = user && (user.isMobAI() || atmos_control.allowed(user) || atmos_control.emagged || air_alarm.rcon_setting == RCON_YES || (air_alarm.alarm_area.atmosalm && air_alarm.rcon_setting == RCON_AUTO)) return extra_href diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 7c220076bb..01d3da92fb 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -86,10 +86,10 @@ /mob/living/silicon/isSilicon() return 1 -/mob/proc/isAI() +/mob/proc/isMobAI() return 0 -/mob/living/silicon/ai/isAI() +/mob/living/silicon/ai/isMobAI() return 1 /mob/proc/isSynthetic() From 2e2cb07ba7caa65b35ba10e733ace325d3da8672 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 7 May 2015 15:32:16 +0100 Subject: [PATCH 2/2] Fixes... things. Lots of things. --- code/game/machinery/telecomms/logbrowser.dm | 59 +++++-------------- .../machinery/telecomms/telecomunications.dm | 22 +++++++ 2 files changed, 38 insertions(+), 43 deletions(-) diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 82a80822e6..171a7271a8 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -63,64 +63,37 @@ // If the log is a speech file if(C.input_type == "Speech File") - dat += "
  • [C.name] \[X\]
    " + dat += "
  • [C.name] \[X\]
    " // -- Determine race of orator -- - var/race // The actual race of the mob - var/language = "Human" // MMIs, pAIs, Cyborgs and humans all speak Human - var/mobtype = C.parameters["mobtype"] - var/mob/M = new mobtype - - if(ishuman(M) || isbrain(M)) - var/mob/living/carbon/human/H = M - race = "[H.species.name]" - - - else if(ismonkey(M)) - race = "Monkey" - language = race - - else if(issilicon(M) || C.parameters["job"] == "AI") // sometimes M gets deleted prematurely for AIs... just check the job - race = "Artificial Life" - - else if(isslime(M)) // NT knows a lot about slimes, but not aliens. Can identify slimes - race = "slime" - language = race - - else if(isanimal(M)) - race = "Domestic Animal" - language = race - - else - race = "Unidentifiable" - language = race - - del(M) + var/race = C.parameters["race"] // The actual race of the mob + var/language = C.parameters["language"] // The language spoken, or null/"" // -- If the orator is a human, or universal translate is active, OR mob has universal speech on -- - if(language == "Human" || universal_translate || C.parameters["uspeech"]) - dat += "Data type: [C.input_type]
    " - dat += "Source: [C.parameters["name"]] (Job: [C.parameters["job"]])
    " - dat += "Class: [race]
    " - dat += "Contents: \"[C.parameters["message"]]\"
    " - + if(universal_translate || C.parameters["uspeech"] || C.parameters["intelligible"]) + dat += "Data type: [C.input_type]
    " + dat += "Source: [C.parameters["name"]] (Job: [C.parameters["job"]])
    " + dat += "Class: [race]
    " + dat += "Contents: \"[C.parameters["message"]]\"
    " + if(language) + dat += "Language: [language]
    " // -- Orator is not human and universal translate not active -- else - dat += "Data type: Audio File
    " - dat += "Source: Unidentifiable
    " - dat += "Class: [race]
    " - dat += "Contents: Unintelligble
    " + dat += "Data type: Audio File
    " + dat += "Source: Unidentifiable
    " + dat += "Class: [race]
    " + dat += "Contents: Unintelligble
    " dat += "

  • " else if(C.input_type == "Execution Error") - dat += "
  • [C.name] \[X\]
    " - dat += "Output: \"[C.parameters["message"]]\"
    " + dat += "
  • [C.name] \[X\]
    " + dat += "Output: \"[C.parameters["message"]]\"
    " dat += "

  • " diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index fe638408fc..0b75343169 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -535,6 +535,28 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() log.parameters["message"] = signal.data["message"] log.parameters["name"] = signal.data["name"] log.parameters["realname"] = signal.data["realname"] + log.parameters["language"] = signal.data["language"] + + var/race = "unknown" + if(ishuman(M)) + var/mob/living/carbon/human/H = M + race = "[H.species.name]" + log.parameters["intelligible"] = 1 + else if(isbrain(M)) + var/mob/living/carbon/brain/B = M + race = "[B.species.name]" + log.parameters["intelligible"] = 1 + else if(ismonkey(M)) + race = "Monkey" + else if(issilicon(M)) + race = "Artificial Life" + log.parameters["intelligible"] = 1 + else if(isslime(M)) + race = "Slime" + else if(isanimal(M)) + race = "Domestic Animal" + + log.parameters["race"] = race if(!istype(M, /mob/new_player) && M) log.parameters["uspeech"] = M.universal_speak