From f0b02d8035147cd79fa608c69f4dc809794a62d5 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Wed, 2 Sep 2015 19:07:20 +0100 Subject: [PATCH] Cleans up auto-hiss, makes declaring new auto-hiss strings a simple list declaration --- code/modules/mob/living/autohiss.dm | 101 +++++++++++++++------------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/code/modules/mob/living/autohiss.dm b/code/modules/mob/living/autohiss.dm index f3f3989b378..9c670545adf 100644 --- a/code/modules/mob/living/autohiss.dm +++ b/code/modules/mob/living/autohiss.dm @@ -1,7 +1,7 @@ #define AUTOHISS_OFF 0 -#define AUTOHISS_SR 1 -#define AUTOHISS_SRX 2 +#define AUTOHISS_BASIC 1 +#define AUTOHISS_FULL 2 #define AUTOHISS_NUM 3 @@ -26,64 +26,73 @@ switch(autohiss_mode) if(AUTOHISS_OFF) src << "Auto-hiss is now OFF." - if(AUTOHISS_SR) - src << "Auto-hiss is now ON for 's' (Unathi) and 'r' (Tajara)." - if(AUTOHISS_SRX) - src << "Auto-hiss is now ON for 's', 'x' (Unathi) and 'r' (Tajara)." + if(AUTOHISS_BASIC) + src << "Auto-hiss is now BASIC." + if(AUTOHISS_FULL) + src << "Auto-hiss is now FULL." else soft_assert(0, "invalid autohiss value [autohiss_mode]") autohiss_mode = AUTOHISS_OFF src << "Auto-hiss is now OFF." +/datum/species + var/autohiss_basic_map = null + var/autohiss_extra_map = null + var/autohiss_exempt = null + +/datum/species/unathi + autohiss_basic_map = list( + "s" = list("ss", "sss", "ssss") + ) + autohiss_extra_map = list( + "x" = list("ks", "kss", "ksss") + ) + autohiss_exempt = list("Sinta'unathi") + +/datum/species/tajaran + autohiss_basic_map = list( + "r" = list("rr", "rrr", "rrrr") + ) + autohiss_exempt = list("Siik'tajr") + + /datum/species/proc/handle_autohiss(message, datum/language/lang, mode) - return message - -/datum/species/unathi/handle_autohiss(message, datum/language/lang, mode) - if(lang.name == "Sinta'unathi") // Sinta'unathi has no autohiss + if(!autohiss_basic_map) + return message + if(autohiss_exempt && (lang.name in autohiss_exempt)) return message - . = list() - while(length(message)) - var/i = findtext(message, "s") - var/j = findtext(message, "x") - if(!i && !j) - . += message - break - if(!j || (i && j && i