Skip to content

Commit 3b090d3

Browse files
Debugging/further work on mixed language speech.
1 parent a8b2701 commit 3b090d3

22 files changed

Lines changed: 51 additions & 48 deletions

File tree

code/game/machinery/holopad/holopad_listen.dm

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/obj/machinery/holopad/proc/get_audience()
22
. = list()
3-
var/connected = targetpad && !targetpad.incoming_connection
4-
if(connected)
3+
if(!incoming_connection)
54
for(var/mob/living/listener in range(7, targetpad))
65
. += listener
76
for(var/mob/living/listener in range(7, sourcepad))
@@ -19,19 +18,19 @@
1918
. = ..()
2019
if(last_message == msg || istype(source, /obj/machinery/holopad))
2120
return
22-
if((targetpad && sourcepad) || length(masters))
21+
if(length(masters) || ((sourcepad || targetpad) && !incoming_connection))
2322
last_message = msg
2423
var/list/local_audience = get_mobs_or_objects_in_view(7, get_turf(src), TRUE, FALSE)
2524
for(var/mob/listener in get_audience())
2625
if(!(listener in local_audience))
27-
listener.show_message("<i><small>\icon[src][capitalize(name)] relayed:</small></i> [msg]", type, source)
26+
listener.show_message("<i><small>\icon[src] [capitalize(strip_improper(name))] relayed:</small></i> [msg]", type, source)
2827

29-
/obj/machinery/holopad/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
28+
/obj/machinery/holopad/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
3029
..()
31-
var/phrase_msg = "\ref[phrases.speaker_ref]: [phrases.formatted_message]"
30+
var/phrase_msg = "\ref[speaker]: [istype(phrases) ? phrases.formatted_message : phrases]"
3231
if(last_message == phrase_msg)
3332
return
34-
if((targetpad && sourcepad) || length(masters))
33+
if(length(masters) || ((sourcepad || targetpad) && !incoming_connection))
3534
last_message = phrase_msg
3635
var/list/local_audience = get_mobs_or_objects_in_view(7, get_turf(speaker), TRUE, FALSE)
3736
for(var/mob/listener in get_audience())

code/game/objects/__objs.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@
115115
/obj/proc/hides_under_flooring()
116116
return level == LEVEL_BELOW_PLATING
117117

118-
/obj/proc/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
118+
/obj/proc/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
119119
if(talking_atom)
120-
talking_atom.catchMessage(phrases.unformatted_message, speaker)
120+
talking_atom.catchMessage(istype(phrases) ? phrases.unformatted_message : phrases, speaker)
121121

122122
/obj/proc/damage_flags()
123123
. = 0

code/game/objects/items/devices/radio/beacon.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var/global/list/radio_beacons = list()
2424
/obj/item/radio/beacon/toggle_panel(var/mob/user)
2525
return FALSE
2626

27-
/obj/item/radio/beacon/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
27+
/obj/item/radio/beacon/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
2828
return
2929

3030
/obj/item/radio/beacon/emp_act(severity)

code/game/objects/items/devices/radio/radio.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,9 +443,9 @@
443443
var/datum/extension/network_device/network_device = get_extension(src, /datum/extension/network_device)
444444
return network_device?.get_network() == check_network_membership
445445

446-
/obj/item/radio/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
446+
/obj/item/radio/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
447447
if(on && broadcasting && get_dist(src, speaker) <= canhear_range)
448-
talk_into(speaker, phrases, verb)
448+
talk_into(speaker, istype(phrases) ? phrases.unformatted_message : phrases, verb)
449449

450450
/obj/item/radio/proc/get_accessible_channel_descriptions(var/mob/user)
451451
var/prefix = user?.get_department_radio_prefix()

code/game/objects/items/devices/spy_bug.dm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
return TRUE
4646
return ..()
4747

48-
/obj/item/spy_bug/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
49-
radio.hear_talk(speaker, phrases, verb)
48+
/obj/item/spy_bug/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
49+
radio.hear_talk(speaker, phrases, verb, stars, force_language)
5050

5151
/obj/item/spy_monitor
5252
name = "\improper PDA"
@@ -137,8 +137,8 @@
137137
return -1
138138
return 0
139139

140-
/obj/item/spy_monitor/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
141-
return radio.hear_talk(speaker, phrases, verb)
140+
/obj/item/spy_monitor/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
141+
return radio.hear_talk(speaker, phrases, verb, stars, force_language)
142142

143143
/obj/item/radio/spy
144144
listening = 0

code/game/objects/items/devices/tape_recorder/tape_recorder.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@
9696
if(distance <= 1 && wires_accessible)
9797
. += SPAN_NOTICE("The wires are exposed.")
9898

99-
/obj/item/taperecorder/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
99+
/obj/item/taperecorder/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
100100
if(mytape && recording)
101-
var/list/messages = phrases.compile_for_listener(src, machine_listener = TRUE)
101+
var/list/messages = istype(phrases) ? phrases.compile_for_listener(src, machine_listener = TRUE) : phrases
102102
mytape.record_speech("[speaker.name] [verb], \"[messages[1]]\"")
103103

104104
/obj/item/taperecorder/show_message(msg, type, alt, alt_type, atom/source)

code/modules/assembly/holder.dm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,9 @@
168168
qdel(src)
169169
return
170170

171-
/obj/item/assembly_holder/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
172-
a_left?.hear_talk(speaker, phrases, verb)
173-
a_right?.hear_talk(speaker, phrases, verb)
171+
/obj/item/assembly_holder/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
172+
a_left?.hear_talk( speaker, phrases, verb, stars, force_language)
173+
a_right?.hear_talk(speaker, phrases, verb, stars, force_language)
174174

175175
/obj/item/assembly_holder/get_examine_strings(mob/user, distance, infix, suffix)
176176
. = ..()

code/modules/assembly/voice.dm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
. = ..()
1616
global.listening_objects += src
1717

18-
/obj/item/assembly/voice/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
18+
/obj/item/assembly/voice/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
1919
if(listening)
20-
recorded = phrases.unformatted_message
20+
recorded = istype(phrases) ? phrases.unformatted_message : phrases
2121
listening = 0
2222
var/turf/T = get_turf(src) //otherwise it won't work in hand
2323
T.visible_message("[html_icon(src)] beeps, \"Activation message is '[recorded]'.\"")
2424
else
25-
if(findtext(phrases.unformatted_message, recorded))
25+
if(findtext(istype(phrases) ? phrases.unformatted_message : phrases, recorded))
2626
pulse_device(0)
2727

2828
/obj/item/assembly/voice/activate()

code/modules/fabrication/fabricator_food.dm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
global.listening_objects -= src
1717
return ..()
1818

19-
/obj/machinery/fabricator/replicator/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
19+
/obj/machinery/fabricator/replicator/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
20+
if(!istype(phrases))
21+
return ..()
2022
for(var/list/phrase in phrases.phrases)
2123
var/decl/language/speaking = phrase[2]
2224
if(speaking && !speaking.machine_understands)

code/modules/implants/implant_types/explosive.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@
9191
frequency = new_frequency
9292
radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
9393

94-
/obj/item/implant/explosive/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE)
94+
/obj/item/implant/explosive/hear_talk(mob/living/speaker, datum/speech/phrases, verb, stars = FALSE, decl/language/force_language)
9595
hear(phrases)
9696

9797
/obj/item/implant/explosive/hear(datum/speech/phrases)
9898
if(!phrase)
9999
return
100-
if(findtext(sanitize_phrase(phrases.unformatted_message), phrase))
100+
if(findtext(sanitize_phrase(istype(phrases) ? phrases.unformatted_message : phrases), phrase))
101101
activate()
102102
qdel(src)
103103

0 commit comments

Comments
 (0)