Skip to content

Commit

Permalink
fix holocalls (#1194)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kapu1178 authored Feb 2, 2025
1 parent 6941347 commit f81c72b
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 9 deletions.
2 changes: 1 addition & 1 deletion code/datums/station_traits/negative_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
for(var/mob/living/simple_animal/bot/found_bot in GLOB.alive_mob_list)
/// The bot's language holder - so we can randomize and change their language
var/datum/language_holder/bot_languages = found_bot.get_language_holder()
bot_languages.selected_language = bot_languages.get_random_spoken_language()
bot_languages.set_selected_language(bot_languages.get_random_spoken_language())

/datum/station_trait/revenge_of_pun_pun
name = "Revenge of Pun Pun"
Expand Down
2 changes: 1 addition & 1 deletion code/game/atoms_movable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1188,7 +1188,7 @@
*/

/// Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
/atom/movable/proc/get_language_holder(get_minds = TRUE)
/atom/movable/proc/get_language_holder(get_minds = TRUE) as /datum/language_holder
RETURN_TYPE(/datum/language_holder)
if(!language_holder)
language_holder = new initial_language_holder(src)
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/hologram.dm
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY)
Hologram.dir = SOUTH //for now
var/datum/language_holder/holder = Hologram.get_language_holder()
holder.selected_language = record.language
holder.set_selected_language(GET_LANGUAGE_DATUM(record.language))
Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it.
Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
Hologram.set_anchored(TRUE)//So space wind cannot drag it.
Expand Down Expand Up @@ -774,7 +774,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
return
if(HOLORECORD_LANGUAGE)
var/datum/language_holder/holder = replay_holo.get_language_holder()
holder.selected_language = entry[2]
holder.set_selected_language(GET_LANGUAGE_DATUM(entry[2]))
if(HOLORECORD_PRESET)
var/preset_type = entry[2]
var/datum/preset_holoimage/H = new preset_type
Expand Down
3 changes: 2 additions & 1 deletion code/modules/flockmind/flock_language.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/datum/language/flock
name = "Symphonic"
syllables = list("caw")
sentence_chance = 0
space_chance = 100
default_priority = 101
default_priority = 99
key = "f"

icon_state = "flock"
9 changes: 9 additions & 0 deletions code/modules/language/language_holder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,13 @@ Key procs
owner = null
return ..()

/// Setter for selected language.
/datum/language_holder/proc/set_selected_language(datum/language/new_selected)
if(!istype(new_selected))
CRASH("Tried to set selected language to a [new_selected].")

selected_language = new_selected

/// Grants the supplied language.
/datum/language_holder/proc/grant_language(datum/language/language, understood = TRUE, spoken = TRUE, source = LANGUAGE_MIND)
if(istype(language))
Expand Down Expand Up @@ -185,6 +192,8 @@ Key procs

/// Returns selected language if it can be spoken, or decides, sets and returns a new selected language if possible.
/datum/language_holder/proc/get_selected_language()
RETURN_TYPE(/datum/language)

if(selected_language && can_speak_language(selected_language))
return selected_language

Expand Down
2 changes: 1 addition & 1 deletion code/modules/language/language_menu.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
switch(action)
if("select_default")
if(language_datum && AM.can_speak_language(language_datum))
language_holder.selected_language = language_datum
language_holder.set_selected_language(language_datum)
. = TRUE
if("grant_language")
if((is_admin || isobserver(AM)) && language_datum)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/silicon/pai/pai_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
if(3)
adjust_timed_status_effect(INFINITY, /datum/status_effect/speech/stutter/derpspeech)
to_chat(src, span_danger("Warning: Vocabulary databank corrupted."))
if(prob(40))
mind.language_holder.selected_language = get_random_spoken_language()

if(prob(40))
mind.language_holder.set_selected_language(get_random_spoken_language())

/mob/living/silicon/pai/ex_act(severity, target)
take_holo_damage(50 * severity)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/unit_tests/say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@

// Language test
speaker.grant_language(/datum/language/beachbum)
speaker.get_language_holder():selected_language = GET_LANGUAGE_DATUM(/datum/language/beachbum)
speaker.get_language_holder():set_selected_language(GET_LANGUAGE_DATUM(/datum/language/beachbum))
listener.add_blocked_language(/datum/language/beachbum)
// speaking and whispering should be hearable
conversation(distance = 1)
Expand Down

0 comments on commit f81c72b

Please sign in to comment.