From ba2a1c8f190d3f40844ca330bdbc41df694df1b0 Mon Sep 17 00:00:00 2001 From: Miauw Date: Sun, 22 Mar 2015 18:55:59 +0100 Subject: [PATCH] Adds a verb_exclaim var. Fixes #8478. Also makes saymods transmitted through the radio system for upcoming NTSL integration. --- code/game/atoms_movable.dm | 1 + code/game/machinery/computer/shuttle.dm | 4 ++-- code/game/machinery/machinery.dm | 1 + code/game/machinery/newscaster.dm | 2 +- code/game/machinery/telecomms/broadcaster.dm | 19 ++++++++++++------- .../machinery/telecomms/telecomunications.dm | 6 +++++- code/game/machinery/vending.dm | 2 +- .../game/objects/items/devices/radio/radio.dm | 15 ++++++++++++--- code/game/say.dm | 11 +++++++---- code/modules/assembly/voice.dm | 2 +- code/modules/library/lib_machines.dm | 2 +- code/modules/mob/living/carbon/slime/say.dm | 10 ---------- code/modules/mob/living/carbon/slime/slime.dm | 1 + code/modules/mob/living/silicon/say.dm | 8 -------- code/modules/mob/living/silicon/silicon.dm | 3 ++- code/modules/mob/say_readme.dm | 8 ++++++-- 16 files changed, 53 insertions(+), 42 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index cc04a274cfc..409cd09f4fb 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -9,6 +9,7 @@ var/languages = 0 //For say() and Hear() var/verb_say = "says" var/verb_ask = "asks" + var/verb_exclaim = "exclaims" var/verb_yell = "yells" var/inertia_dir = 0 var/pass_flags = 0 diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index db4becd96bf..c2eb7cf102f 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -134,7 +134,7 @@ circuit = /obj/item/weapon/circuitboard/supplycomp verb_say = "flashes" verb_ask = "flashes" - verb_yell = "flashes" + verb_exclaim = "flashes" var/temp = null var/reqtime = 0 //Cooldown for requisitions - Quarxink var/hacked = 0 @@ -155,7 +155,7 @@ circuit = /obj/item/weapon/circuitboard/ordercomp verb_say = "flashes" verb_ask = "flashes" - verb_yell = "flashes" + verb_exclaim = "flashes" var/temp = null var/reqtime = 0 //Cooldown for requisitions - Quarxink var/last_viewed_group = "categories" diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index bd71a6f4005..7ab801e8d88 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -93,6 +93,7 @@ Class Procs: /obj/machinery name = "machinery" icon = 'icons/obj/stationobjs.dmi' + verb_yell = "blares" var/stat = 0 var/emagged = 0 var/use_power = 1 diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 72aa050feb2..a69a1526de8 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -126,7 +126,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co icon_state = "newscaster_normal" verb_say = "beeps" verb_ask = "beeps" - verb_yell = "beeps" + verb_exclaim = "beeps" var/isbroken = 0 //1 if someone banged it with something heavy var/ispowered = 1 //starts powered, changes with power_change() //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored. diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 1a70443e37f..18e8a4c94e2 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -59,7 +59,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept Broadcast_Message(signal.data["mob"], signal.data["vmask"], signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], - 0, signal.data["compression"], signal.data["level"], signal.frequency, signal.data["spans"]) + 0, signal.data["compression"], signal.data["level"], signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]) /** #### - Simple Broadcast - #### **/ @@ -83,7 +84,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept signal.data["vmask"], signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], - signal.data["realname"], 4, signal.data["compression"], signal.data["level"], signal.frequency, signal.data["spans"]) + signal.data["realname"], 4, signal.data["compression"], signal.data["level"], signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]) if(!message_delay) message_delay = 1 @@ -143,7 +145,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept signal.data["vmask"], signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], - signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"]) + signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]) /** @@ -204,7 +207,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept /proc/Broadcast_Message(var/atom/movable/AM, var/vmask, var/obj/item/device/radio/radio, var/message, var/name, var/job, var/realname, - var/data, var/compression, var/list/level, var/freq, var/list/spans) + var/data, var/compression, var/list/level, var/freq, var/list/spans, + var/verb_say, var/verb_ask, var/verb_exclaim, var/verb_yell) message = copytext(message, 1, MAX_BROADCAST_LEN) @@ -220,9 +224,10 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept virt.source = AM virt.faketrack = data == 4 ? 1 : 0 virt.radio = radio - virt.verb_say = AM.verb_say - virt.verb_ask = AM.verb_ask - virt.verb_yell = AM.verb_yell + virt.verb_say = verb_say + virt.verb_ask = verb_ask + virt.verb_exclaim = verb_exclaim + virt.verb_yell = verb_yell if(compression > 0) message = Gibberish(message, compression + 40) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 1fd2f349c89..c0c8d3abbf9 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -88,7 +88,11 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() "server" = signal.data["server"], "reject" = signal.data["reject"], "level" = signal.data["level"], - "spans" = signal.data["spans"] + "spans" = signal.data["spans"], + "verb_say" = signal.data["verb_say"], + "verb_ask" = signal.data["verb_ask"], + "verb_exclaim" = signal.data["verb_exclaim"], + "verb_yell" = signal.data["verb_yell"] ) // Keep the "original" signal constant diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 63d5b47b012..09127865193 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -16,7 +16,7 @@ density = 1 verb_say = "beeps" verb_ask = "beeps" - verb_yell = "beeps" + verb_exclaim = "beeps" var/active = 1 //No sales pitches if off! var/vend_ready = 1 //Are we ready to vend?? Is it time?? var/vend_delay = 10 //How long does it take to vend? diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 0143a4887b6..816c0f37b0a 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -360,7 +360,11 @@ "reject" = 0, // if nonzero, the signal will not be accepted by any broadcasting machinery "level" = position.z, // The source's z level "languages" = M.languages, //The languages M is talking in. - "spans" = spans //the span classes of this message. + "spans" = spans, //the span classes of this message. + "verb_say" = M.verb_say, //the verb used when talking normally + "verb_ask" = M.verb_ask, //the verb used when asking + "verb_exclaim" = M.verb_exclaim, //the verb used when exclaiming + "verb_yell" = M.verb_yell //the verb used when yelling ) signal.frequency = freq @@ -406,7 +410,11 @@ "reject" = 0, "level" = position.z, "languages" = languages, - "spans" = spans + "spans" = spans, + "verb_say" = M.verb_say, + "verb_ask" = M.verb_ask, + "verb_exclaim" = M.verb_exclaim, + "verb_yell" = M.verb_yell ) signal.frequency = text2num(freq) // Quick frequency set for(var/obj/machinery/telecomms/receiver/R in telecomms_list) @@ -423,7 +431,8 @@ // Send a mundane broadcast with limited targets: Broadcast_Message(M, voicemask, src, message, voice, jobname, real_name, - filter_type, signal.data["compression"], list(position.z), freq, spans) + filter_type, signal.data["compression"], list(position.z), freq, spans, + verb_say, verb_ask, verb_exclaim, verb_yell) /obj/item/device/radio/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) if(radio_freq) diff --git a/code/game/say.dm b/code/game/say.dm index 4f0f24139dd..368488b2831 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -68,18 +68,21 @@ var/list/freqtospan = list( var/ending = copytext(input, length(input)) if(copytext(input, length(input) - 1) == "!!") spans |= SPAN_YELL + return "[verb_yell], \"[attach_spans(input, spans)]\"" input = attach_spans(input, spans) if(ending == "?") return "[verb_ask], \"[input]\"" if(ending == "!") - return "[verb_yell], \"[input]\"" + return "[verb_exclaim], \"[input]\"" return "[verb_say], \"[input]\"" /atom/movable/proc/lang_treat(atom/movable/speaker, message_langs, raw_message, list/spans) if(languages & message_langs) var/atom/movable/AM = speaker.GetSource() - if(AM) + if(AM) //Basically means "if the speaker is virtual" + if(AM.verb_say != speaker.verb_say || AM.verb_ask != speaker.verb_ask || AM.verb_exclaim != speaker.verb_exclaim || AM.verb_yell != speaker.verb_yell) //If the saymod was changed + return speaker.say_quote(raw_message, spans) return AM.say_quote(raw_message, spans) else return speaker.say_quote(raw_message, spans) @@ -136,11 +139,11 @@ var/list/freqtospan = list( /atom/movable/proc/IsVocal() return 1 +/atom/movable/proc/get_alt_name() + //HACKY VIRTUALSPEAKER STUFF BEYOND THIS POINT //these exist mostly to deal with the AIs hrefs and job stuff. -/atom/movable/proc/get_alt_name() - /atom/movable/proc/GetJob() //Get a job, you lazy butte /atom/movable/proc/GetTrack() diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 75fe87e9802..1042d781a0c 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -9,7 +9,7 @@ attachable = 1 verb_say = "beeps" verb_ask = "beeps" - verb_yell = "beeps" + verb_exclaim = "beeps" var/listening = 0 var/recorded = "" //the activation message diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index aaba77bd9e0..2bc127de6db 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -164,7 +164,7 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book verb_say = "beeps" verb_ask = "beeps" - verb_yell = "beeps" + verb_exclaim = "beeps" var/buffer_book var/buffer_mob var/upload_category = "Fiction" diff --git a/code/modules/mob/living/carbon/slime/say.dm b/code/modules/mob/living/carbon/slime/say.dm index 8f391736954..aafb0b12a99 100644 --- a/code/modules/mob/living/carbon/slime/say.dm +++ b/code/modules/mob/living/carbon/slime/say.dm @@ -1,13 +1,3 @@ -/mob/living/carbon/slime/say_quote(var/text) - var/ending = copytext(text, length(text)) - - if (ending == "?") - return "telepathically asks, \"[text]\""; - else if (ending == "!") - return "telepathically cries, \"[text]\""; - - return "telepathically chirps, \"[text]\""; - /mob/living/carbon/slime/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans) if(speaker != src && !radio_freq) if (speaker in Friends) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 488e946f270..ed3df67862f 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -22,6 +22,7 @@ verb_say = "telepathically chirps" verb_ask = "telepathically asks" + verb_exclaim = "telepathically cries" verb_yell = "telephatically cries" // canstun and canweaken don't affect slimes because they ignore stun and weakened variables diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 7fe05e7dce4..f15bf738781 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -1,14 +1,6 @@ /mob/living/silicon/say(var/message) return ..(message, "R") -/mob/living/silicon/say_quote(input, spans) - if(copytext(input, length(input) - 1) == "!!") - spans |= SPAN_YELL - input = attach_spans(input, spans) - return "alarms, \"[input]\"" - - return ..() - /mob/living/silicon/get_spans() return ..() | SPAN_ROBOT diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 0256aaa0a9f..24bb007c3d2 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -5,7 +5,8 @@ has_unlimited_silicon_privilege = 1 verb_say = "states" verb_ask = "queries" - verb_yell = "declares" + verb_exclaim = "declares" + verb_yell = "alarms" var/syndicate = 0 var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS var/list/alarms_to_show = list() diff --git a/code/modules/mob/say_readme.dm b/code/modules/mob/say_readme.dm index 150f58c865d..ddc9f2b148b 100644 --- a/code/modules/mob/say_readme.dm +++ b/code/modules/mob/say_readme.dm @@ -52,7 +52,7 @@ global procs What languages this object speaks/understands. If the languages of the speaker don't match the languages of the hearer, the message will be modified in the hearer's lang_treat(). - verb_say/verb_ask/verb_yell + verb_say/verb_ask/verb_exclaim/verb_yell These determine what the verb is for their respective action. Used in say_quote(). say(message) @@ -74,8 +74,12 @@ global procs Modifies the message by comparing the languages of the speaker with the languages of the hearer. Called on the hearer. - say_quote(text, spans) + say_quote(input, spans) Adds a verb and quotes to a message. Also attaches span classes to a message. Verbs are determined by verb_say/verb_ask/verb_yell variables. Called on the speaker. + + get_spans(input, spans) + Returns the list of spans that are always applied to messages of this atom. + Always return ..() | + youroutput when overriding this proc! /mob say_dead(message)