basic code cleanup and limits

This commit is contained in:
deathride58
2022-06-09 23:37:49 -04:00
parent 425334b3b4
commit 512a8c783c
7 changed files with 36 additions and 16 deletions
+16
View File
@@ -97,6 +97,22 @@
#define MAX_BROADCAST_LEN 512
#define MAX_CHARTER_LEN 80
//Bark defines
#define BARK_DEFAULT_MINPITCH 0.6
#define BARK_DEFAULT_MAXPITCH 1.4
#define BARK_DEFAULT_MINVARY 0.1
#define BARK_DEFAULT_MAXVARY 0.4
#define BARK_DEFAULT_MINSPEED 2
#define BARK_DEFAULT_MAXSPEED 8
#define BARK_SPEED_BASELINE 4 //Used to calculate delay between barks, any bark speeds below this feature higher bark density, any speeds above feature lower bark density. Keeps barking length consistent
#define BARK_MAX_BARKS 128
#define BARK_MAX_TIME (10 SECONDS) // More or less the amount of time the above takes to process through with a bark speed of 2.
#define BARK_PITCH_RAND(gend) ((gend == MALE ? rand(60, 120) : (gend == FEMALE ? rand(80, 140) : rand(60,140))) / 100) //Macro for determining random pitch based off gender
#define BARK_VARIANCE_RAND (rand(BARK_DEFAULT_MINVARY * 100, BARK_DEFAULT_MAXVARY * 100) / 100) //Macro for randomizing bark variance to reduce the amount of copy-pasta necessary for that
// Is something in the IC chat filter? This is config dependent.
#define CHAT_FILTER_CHECK(T) (config.ic_filter_regex && findtext(T, config.ic_filter_regex))
+6 -6
View File
@@ -7,14 +7,14 @@
// Pitch vars. The actual range for a bark is [(pitch - (maxvariance*0.5)) to (pitch + (maxvariance*0.5))]
// Make absolutely sure to take variance into account when curating a sound for bark purposes.
var/minpitch = 0.6
var/maxpitch = 1.4
var/minvariance = 0.1
var/maxvariance = 0.4
var/minpitch = BARK_DEFAULT_MINPITCH
var/maxpitch = BARK_DEFAULT_MAXPITCH
var/minvariance = BARK_DEFAULT_MINVARY
var/maxvariance = BARK_DEFAULT_MAXVARY
// Speed vars. Speed determines the number of characters required for each bark, with lower speeds being faster with higher bark density
var/minspeed = 2
var/maxspeed = 8
var/minspeed = BARK_DEFAULT_MINSPEED
var/maxspeed = BARK_DEFAULT_MAXSPEED
// Visibility vars. Regardless of what's set below, these can still be obtained via adminbus and genetics. Rule of fun.
var/list/ckeys_allowed
+4 -2
View File
@@ -55,11 +55,13 @@ GLOBAL_LIST_INIT(freqtospan, list(
continue
if(!(M.client.prefs.toggles & SOUND_BARK))
hearers -= M
var/barks = round((LAZYLEN(message) / vocal_speed)) + 1
var/barks = min(round((LAZYLEN(message) / vocal_speed)) + 1, BARK_MAX_BARKS)
var/total_delay
for(var/i in 1 to barks)
if(total_delay > BARK_MAX_TIME)
break
addtimer(CALLBACK(src, .proc/bark, hearers, range, vocal_volume, rand((vocal_pitch * 100), (vocal_pitch*100) + (vocal_pitch_range*100)) / 100), total_delay)
total_delay += rand(DS2TICKS(vocal_speed/4), DS2TICKS(vocal_speed/4) + DS2TICKS(vocal_speed/4)) TICKS
total_delay += rand(DS2TICKS(vocal_speed / BARK_SPEED_BASELINE), DS2TICKS(vocal_speed / BARK_SPEED_BASELINE) + DS2TICKS(vocal_speed / BARK_SPEED_BASELINE)) TICKS
/atom/movable/proc/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE, atom/movable/source)
if(!source)
+2 -2
View File
@@ -51,8 +51,8 @@
H.dna.features["body_model"] = H.gender
H.set_bark(pick(GLOB.bark_random_list))
H.vocal_pitch = ((H.gender == MALE ? rand(60, 120) : (H.gender == FEMALE ? rand(80, 140) : rand(60,140))) / 100)
H.vocal_pitch_range = rand(10, 40) / 100
H.vocal_pitch = BARK_PITCH_RAND(H.gender)
H.vocal_pitch_range = BARK_VARIANCE_RAND
SEND_SIGNAL(H, COMSIG_HUMAN_ON_RANDOMIZE)
+2 -2
View File
@@ -1033,8 +1033,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
bark_id = sanitize_inlist(bark_id, GLOB.bark_list, pick(GLOB.bark_random_list))
var/datum/bark/bark_path = GLOB.bark_list[bark_id]
bark_speed = sanitize_num_clamp(bark_speed, initial(bark_path.minspeed), initial(bark_path.maxspeed), initial(bark_speed))
bark_pitch = sanitize_num_clamp(bark_pitch, initial(bark_path.minpitch), initial(bark_path.maxpitch), ((gender == MALE ? rand(60, 120) : (gender == FEMALE ? rand(80, 140) : rand(60,140))) / 100))
bark_variance = sanitize_num_clamp(bark_variance, initial(bark_path.minvariance), initial(bark_path.maxvariance), (rand(10, 40) / 100))
bark_pitch = sanitize_num_clamp(bark_pitch, initial(bark_path.minpitch), initial(bark_path.maxpitch), BARK_PITCH_RAND(gender))
bark_variance = sanitize_num_clamp(bark_variance, initial(bark_path.minvariance), initial(bark_path.maxvariance), BARK_VARIANCE_RAND)
joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
//Validate job prefs
@@ -25,8 +25,8 @@
pref_species = new rando_race()
features = random_features(pref_species?.id, gender)
bark_id = pick(GLOB.bark_random_list)
bark_pitch = ((gender == MALE ? rand(60, 120) : (gender == FEMALE ? rand(80, 140) : rand(60,140))) / 100)
bark_variance = rand(10, 40) / 100
bark_pitch = BARK_PITCH_RAND(gender)
bark_variance = BARK_VARIANCE_RAND
age = rand(AGE_MIN,AGE_MAX)
/datum/preferences/proc/update_preview_icon(current_tab)
+4 -2
View File
@@ -317,11 +317,13 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
continue
if(!(M.client.prefs.toggles & SOUND_BARK))
listening -= M
var/barks = round((LAZYLEN(message) / vocal_speed)) + 1
var/barks = min(round((LAZYLEN(message) / vocal_speed)) + 1, BARK_MAX_BARKS)
var/total_delay
for(var/i in 1 to barks)
if(total_delay > BARK_MAX_TIME)
break
addtimer(CALLBACK(src, /atom/movable/proc/bark, listening, (message_range * (is_yell ? 4 : 1)), (vocal_volume * (is_yell ? 1.5 : 1)), rand(vocal_pitch * 100, ((vocal_pitch*100) + (vocal_pitch_range*100))) / 100), total_delay)
total_delay += rand(DS2TICKS((vocal_speed/4) * (is_yell ? 0.5 : 1)), DS2TICKS(vocal_speed/4) + DS2TICKS((vocal_speed/4) * (is_yell ? 0.5 : 1))) TICKS
total_delay += rand(DS2TICKS((vocal_speed / BARK_SPEED_BASELINE) * (is_yell ? 0.5 : 1)), DS2TICKS(vocal_speed / BARK_SPEED_BASELINE) + DS2TICKS((vocal_speed / BARK_SPEED_BASELINE) * (is_yell ? 0.5 : 1))) TICKS
/atom/movable/proc/process_yelling(list/already_heard, rendered, atom/movable/speaker, datum/language/message_language, message, list/spans, message_mode, obj/source)