Files
Bubberstation/code/__HELPERS/radio.dm
SkyratBot ad4986e1b6 [MIRROR] Adds the Command Intercom, kills off the varedited freerange intercoms on some maps. [MDB IGNORE] (#16964)
* Adds the Command Intercom, kills off the varedited freerange intercoms on some maps. (#70287)

* Command intercoms now have a unique sprite and are standardized on all maps.
* Also prevents freerange intercoms from accessing syndicate radio.

* Adds the Command Intercom, kills off the varedited freerange intercoms on some maps.

Co-authored-by: Rhials <Datguy33456@gmail.com>
2022-10-19 01:24:03 +01:00

36 lines
1.3 KiB
Plaintext

/// Ensure the frequency is within bounds of what it should be sending/receiving at
/proc/sanitize_frequency(frequency, free = FALSE, syndie = FALSE)
frequency = round(frequency)
if(free)
. = clamp(frequency, MIN_FREE_FREQ, MAX_FREE_FREQ)
else
. = clamp(frequency, MIN_FREQ, MAX_FREQ)
if(!(. % 2)) // Ensure the last digit is an odd number
. += 1
if(. == FREQ_SYNDICATE && !syndie) // Prevents people from picking (or rounding up) into the syndie frequency
. = FREQ_COMMON
/// Format frequency by moving the decimal.
/proc/format_frequency(frequency)
frequency = text2num(frequency)
return "[round(frequency / 10)].[frequency % 10]"
///Opposite of format, returns as a number
/proc/unformat_frequency(frequency)
frequency = text2num(frequency)
return frequency * 10
///returns a random unused frequency between MIN_FREE_FREQ & MAX_FREE_FREQ if free = TRUE, and MIN_FREQ & MAX_FREQ if FALSE
/proc/return_unused_frequency(free = FALSE)
var/start = free ? MIN_FREE_FREQ : MIN_FREQ
var/end = free ? MAX_FREE_FREQ : MAX_FREQ
var/freq_to_check = 0
do
freq_to_check = rand(start, end)
if(!(freq_to_check % 2)) // Ensure the last digit is an odd number
freq_to_check++
while((freq_to_check == 0) || ("[freq_to_check]" in GLOB.reverseradiochannels))
return freq_to_check