Skip to content

Commit

Permalink
TTS interrupt signal (#1612)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает

<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #xxxx" (где xxxx - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

Добавляет поддержку для отмены произведения ТТСа по сигналу

## Почему это хорошо для игры

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

ГБСы не должны говорить ТТСом на языке щелк-щелк
  • Loading branch information
larentoun authored Nov 1, 2024
1 parent e23a3b1 commit 8018a54
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
5 changes: 4 additions & 1 deletion modular_ss220/text_to_speech/code/_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,12 @@

//from base of atom/change_tts_seed(): (mob/chooser, override, fancy_voice_input_tgui)
#define COMSIG_ATOM_TTS_SEED_CHANGE "atom_tts_seed_change"
//called for tts_component: (atom/speaker, mob/listener, message, atom/location, is_local, effect, traits, preSFX, postSFX)
//called for tts_component: (mob/listener, message, atom/location, is_local, effect, traits, preSFX, postSFX)
#define COMSIG_ATOM_TTS_CAST "atom_tts_cast"
//from base of atom/tts_trait_add(): (atom/user, trait)
#define COMSIG_ATOM_TTS_TRAIT_ADD "atom_tts_trait_add"
//from base of atom/tts_trait_remove(): (atom/user, trait)
#define COMSIG_ATOM_TTS_TRAIT_REMOVE "atom_tts_trait_remove"
//from base of atom/cast_tts(): (mob/listener, message, atom/location, is_local, effect, traits, preSFX, postSFX)
#define COMSIG_ATOM_PRE_TTS_CAST "atom_pre_tts_cast"
#define COMPONENT_TTS_INTERRUPT (1<<0)
3 changes: 3 additions & 0 deletions modular_ss220/text_to_speech/code/tts_atom.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
add_tts_component()

/atom/proc/cast_tts(mob/listener, message, atom/location, is_local = TRUE, effect = SOUND_EFFECT_NONE, traits = TTS_TRAIT_RATE_FASTER, preSFX, postSFX)
SHOULD_CALL_PARENT(TRUE)
if(SEND_SIGNAL(src, COMSIG_ATOM_PRE_TTS_CAST, listener, message, location, is_local, effect, traits, preSFX, postSFX) & COMPONENT_TTS_INTERRUPT)
return
SEND_SIGNAL(src, COMSIG_ATOM_TTS_CAST, listener, message, location, is_local, effect, traits, preSFX, postSFX)

// TODO: Do it better?
Expand Down
2 changes: 2 additions & 0 deletions modular_ss220/text_to_speech/code/~undefs/~undefs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,7 @@

#undef COMSIG_ATOM_TTS_SEED_CHANGE
#undef COMSIG_ATOM_TTS_CAST
#undef COMSIG_ATOM_PRE_TTS_CAST
#undef COMPONENT_TTS_INTERRUPT
#undef COMSIG_ATOM_TTS_TRAIT_ADD
#undef COMSIG_ATOM_TTS_TRAIT_REMOVE

0 comments on commit 8018a54

Please sign in to comment.