diff --git a/code/__HELPERS/radio.dm b/code/__HELPERS/radio.dm index 84b354b6cd..c55fb8095d 100644 --- a/code/__HELPERS/radio.dm +++ b/code/__HELPERS/radio.dm @@ -12,3 +12,8 @@ /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 diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 8959029b9b..8ba703d7fa 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -58,18 +58,12 @@ Send Signal
Frequency/Code for signaler:
Frequency: -- -- [format_frequency(src.frequency)] -+ -+
+Set
Code: -- -- [src.code] -+ -+
+Set
[t1] "} user << browse(dat, "window=radio") @@ -85,17 +79,23 @@ Code: onclose(usr, "radio") return - if (href_list["freq"]) - var/new_frequency = (frequency + text2num(href_list["freq"])) - if(new_frequency < MIN_FREE_FREQ || new_frequency > MAX_FREE_FREQ) - new_frequency = sanitize_frequency(new_frequency) - set_frequency(new_frequency) + if (href_list["set"]) - if(href_list["code"]) - src.code += text2num(href_list["code"]) - src.code = round(src.code) - src.code = min(100, src.code) - src.code = max(1, src.code) + if(href_list["set"] == "freq") + var/new_freq = input(usr, "Input a new signalling frequency", "Remote Signaller Frequency", format_frequency(frequency)) as num|null + if(!usr.canUseTopic(src, BE_CLOSE)) + return + new_freq = unformat_frequency(new_freq) + new_freq = sanitize_frequency(new_freq, TRUE) + set_frequency(new_freq) + + if(href_list["set"] == "code") + var/new_code = input(usr, "Input a new signalling code", "Remote Signaller Code", code) as num|null + if(!usr.canUseTopic(src, BE_CLOSE)) + return + new_code = round(new_code) + new_code = CLAMP(new_code, 1, 100) + code = new_code if(href_list["send"]) spawn( 0 ) @@ -206,4 +206,4 @@ Code: /obj/item/assembly/signaler/cyborg/attackby(obj/item/W, mob/user, params) return /obj/item/assembly/signaler/cyborg/screwdriver_act(mob/living/user, obj/item/I) - return + return \ No newline at end of file