-
+
+
+ [title]
+
+
+
+
+
+
+
-
- [sprite ? " | " : ""]
- [D.get_view_variables_header()] |
-
+
+
+ |
+ [sprite_text]
+
+ [header.Join()]
+
+ |
+
+
- [replacetext("[D.type]", "/", "/")]
- [holder.marked_datum == D ? " Marked Object" : ""]
+ [formatted_type]
+ [marked]
+ [varedited_line]
+ [deleted_line]
|
|
-
-
-
-
- E - Edit, tries to determine the variable type by itself.
- C - Change, asks you for the var type first.
- M - Mass modify: changes this variable for all objects of this type.
-
-
-
+
+
+
+ E - Edit, tries to determine the variable type by itself.
+ C - Change, asks you for the var type first.
+ M - Mass modify: changes this variable for all objects of this type.
+
+
+
-
-
- [make_view_variables_var_list(D)]
-
-
-
- "}
+
+
+
+
+ [variable_html.Join()]
+
+
+
+
+"}
+ src << browse(html, "window=variables[refid];size=475x650")
- usr << browse(html, "window=variables\ref[D];size=475x650")
-
-
-/proc/make_view_variables_var_list(datum/D)
- . = ""
- var/list/variables = list()
- for(var/x in D.vars)
- if(x in view_variables_hide_vars)
- continue
- variables += x
- variables = sortList(variables)
- for(var/x in variables)
- . += make_view_variables_var_entry(D, x, D.vars[x])
-
-/proc/make_view_variables_var_entry(datum/D, varname, value, level=0)
- var/ecm = null
- var/vtext = null
- var/extra = null
-
- if(D)
- ecm = {"
- (
E)
- (
C)
- (
M)
- "}
-
- if(isnull(value))
- vtext = "null"
- else if(istext(value))
- vtext = "\"[value]\""
- else if(isicon(value))
- vtext = "[value]"
- else if(isfile(value))
- vtext = "'[value]'"
- else if(istype(value, /datum))
- var/datum/DA = value
- if("[DA]" == "[DA.type]" || !"[DA]")
- vtext = "
\ref[DA] - [DA.type]"
- else
- vtext = "
\ref[DA] - [DA] ([DA.type])"
- else if(istype(value, /client))
- var/client/C = value
- vtext = "
\ref[C] - [C] ([C.type])"
- else if(islist(value))
- var/list/L = value
- var/removed = 0
- if(varname == "contents")
- var/list/original = value
- L = original.Copy() //We'll take a copy to manipulate
- removed = D.view_variables_filter_contents(L)
- vtext = "/list ([L.len]+[removed]H)"
- if(!(varname in view_variables_dont_expand) && L.len > 0 && L.len < 100)
- extra = "
"
- var/index = 1
- for (var/entry in L)
- if(istext(entry))
- extra += make_view_variables_var_entry(null, entry, L[entry], level+1)
- else
- extra += make_view_variables_var_entry(null, index, L[index], level+1)
- index++
- extra += "
"
- else
- vtext = "[value]"
-
- return "
[ecm][varname] = [vtext][extra]"
-
-//Allows us to mask out some contents when it's not necessary to show them
-//For example, organs on humans, as the organs are stored in other lists which will also be present
-//So there's really no need to list them twice.
-/datum/proc/view_variables_filter_contents(list/L)
- return 0 //Return how many items you removed.
-
-/mob/living/carbon/human/view_variables_filter_contents(list/L)
- . = ..()
- L -= ability_master
- .++
-
-/mob/living/carbon/human/view_variables_filter_contents(list/L)
- . = ..()
- var/len_before = L.len
- L -= organs
- L -= internal_organs
- . += len_before - L.len
+/client/proc/vv_update_display(datum/D, span, content)
+ src << output("[span]:[content]", "variables\ref[D].browser:replace_span")
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 95455bba3f..a4123ea47e 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -401,3 +401,8 @@ client/verb/character_setup()
. = R.group[1]
else
CRASH("Age check regex failed for [src.ckey]")
+
+/client/vv_edit_var(var_name, var_value)
+ if(var_name == NAMEOF(src, holder))
+ return FALSE
+ return ..()
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index c6184c41a0..cda61be1b3 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -182,7 +182,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
if(isnull(last_descriptors[entry]))
pref.body_descriptors[entry] = descriptor.default_value // Species datums have initial default value.
else
- pref.body_descriptors[entry] = Clamp(last_descriptors[entry], 1, LAZYLEN(descriptor.standalone_value_descriptors))
+ pref.body_descriptors[entry] = CLAMP(last_descriptors[entry], 1, LAZYLEN(descriptor.standalone_value_descriptors))
return
diff --git a/code/modules/client/preference_setup/global/05_media.dm b/code/modules/client/preference_setup/global/05_media.dm
index 3551735bb9..7ae263d9ea 100644
--- a/code/modules/client/preference_setup/global/05_media.dm
+++ b/code/modules/client/preference_setup/global/05_media.dm
@@ -15,7 +15,7 @@
S["media_player"] << pref.media_player
/datum/category_item/player_setup_item/player_global/media/sanitize_preferences()
- pref.media_volume = isnum(pref.media_volume) ? Clamp(pref.media_volume, 0, 1) : initial(pref.media_volume)
+ pref.media_volume = isnum(pref.media_volume) ? CLAMP(pref.media_volume, 0, 1) : initial(pref.media_volume)
pref.media_player = sanitize_inlist(pref.media_player, list(0, 1, 2), initial(pref.media_player))
/datum/category_item/player_setup_item/player_global/media/content(var/mob/user)
@@ -35,7 +35,7 @@
if(CanUseTopic(user))
var/value = input("Choose your Jukebox volume (0-100%)", "Jukebox volume", round(pref.media_volume * 100))
if(isnum(value))
- value = Clamp(value, 0, 100)
+ value = CLAMP(value, 0, 100)
pref.media_volume = value/100.0
if(user.client && user.client.media)
user.client.media.update_volume(pref.media_volume)
diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm
index 507a516981..2d6676adec 100644
--- a/code/modules/economy/Accounts_DB.dm
+++ b/code/modules/economy/Accounts_DB.dm
@@ -143,7 +143,7 @@
var/account_name = href_list["holder_name"]
var/starting_funds = max(text2num(href_list["starting_funds"]), 0)
- starting_funds = Clamp(starting_funds, 0, station_account.money) // Not authorized to put the station in debt.
+ starting_funds = CLAMP(starting_funds, 0, station_account.money) // Not authorized to put the station in debt.
starting_funds = min(starting_funds, fund_cap) // Not authorized to give more than the fund cap.
create_account(account_name, starting_funds, src)
diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm
index 8bf5c63cc7..8c67e5394c 100644
--- a/code/modules/economy/cash.dm
+++ b/code/modules/economy/cash.dm
@@ -78,7 +78,7 @@
/obj/item/weapon/spacecash/attack_self()
var/amount = input(usr, "How many Thalers do you want to take? (0 to [src.worth])", "Take Money", 20) as num
- amount = round(Clamp(amount, 0, src.worth))
+ amount = round(CLAMP(amount, 0, src.worth))
if(!amount)
return
diff --git a/code/modules/economy/cash_register.dm b/code/modules/economy/cash_register.dm
index 9ef7a3f871..f3402f892e 100644
--- a/code/modules/economy/cash_register.dm
+++ b/code/modules/economy/cash_register.dm
@@ -128,7 +128,7 @@
if("set_amount")
var/item_name = locate(href_list["item"])
var/n_amount = round(input("Enter amount", "New amount") as num)
- n_amount = Clamp(n_amount, 0, 20)
+ n_amount = CLAMP(n_amount, 0, 20)
if (!item_list[item_name] || !Adjacent(usr)) return
transaction_amount += (n_amount - item_list[item_name]) * price_list[item_name]
if(!n_amount)
diff --git a/code/modules/economy/retail_scanner.dm b/code/modules/economy/retail_scanner.dm
index af1d87177a..55a7fd0866 100644
--- a/code/modules/economy/retail_scanner.dm
+++ b/code/modules/economy/retail_scanner.dm
@@ -120,7 +120,7 @@
if("set_amount")
var/item_name = locate(href_list["item"])
var/n_amount = round(input("Enter amount", "New amount") as num)
- n_amount = Clamp(n_amount, 0, 20)
+ n_amount = CLAMP(n_amount, 0, 20)
if (!item_list[item_name] || !Adjacent(usr)) return
transaction_amount += (n_amount - item_list[item_name]) * price_list[item_name]
if(!n_amount)
diff --git a/code/modules/food/food/sandwich.dm b/code/modules/food/food/sandwich.dm
index 5662b7d3ff..f4d9ac5fd0 100644
--- a/code/modules/food/food/sandwich.dm
+++ b/code/modules/food/food/sandwich.dm
@@ -71,7 +71,7 @@
name = lowertext("[fullname] sandwich")
if(length(name) > 80) name = "[pick(list("absurd","colossal","enormous","ridiculous"))] sandwich"
- w_class = n_ceil(Clamp((ingredients.len/2),2,4))
+ w_class = n_ceil(CLAMP((ingredients.len/2),2,4))
/obj/item/weapon/reagent_containers/food/snacks/csandwich/Destroy()
for(var/obj/item/O in ingredients)
diff --git a/code/modules/gamemaster/helpers.dm b/code/modules/gamemaster/helpers.dm
index 80fc133931..da05cb1b20 100644
--- a/code/modules/gamemaster/helpers.dm
+++ b/code/modules/gamemaster/helpers.dm
@@ -1,9 +1,9 @@
// Tell the game master that something dangerous happened, e.g. someone dying.
/datum/game_master/proc/adjust_danger(var/amt)
amt = amt * danger_modifier
- danger = round( Clamp(danger + amt, 0, 1000), 0.1)
+ danger = round( CLAMP(danger + amt, 0, 1000), 0.1)
// Tell the game master that something interesting happened.
/datum/game_master/proc/adjust_staleness(var/amt)
amt = amt * staleness_modifier
- staleness = round( Clamp(staleness + amt, -50, 200), 0.1)
\ No newline at end of file
+ staleness = round( CLAMP(staleness + amt, -50, 200), 0.1)
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/subtypes/data_transfer.dm b/code/modules/integrated_electronics/subtypes/data_transfer.dm
index e490ccd27a..052d3acb76 100644
--- a/code/modules/integrated_electronics/subtypes/data_transfer.dm
+++ b/code/modules/integrated_electronics/subtypes/data_transfer.dm
@@ -125,7 +125,7 @@
/obj/item/integrated_circuit/transfer/pulsedemultiplexer/do_work()
var/output_index = get_pin_data(IC_INPUT, 1)
- if(output_index == Clamp(output_index, 1, number_of_outputs))
+ if(output_index == CLAMP(output_index, 1, number_of_outputs))
activate_pin(round(output_index + 1 ,1))
/obj/item/integrated_circuit/transfer/pulsedemultiplexer/medium
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
index 08f4975e5c..9c54a6e377 100644
--- a/code/modules/integrated_electronics/subtypes/input.dm
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -296,7 +296,7 @@
/obj/item/integrated_circuit/input/advanced_locator/on_data_written()
var/rad = get_pin_data(IC_INPUT, 2)
if(isnum(rad))
- rad = Clamp(rad, 0, 7)
+ rad = CLAMP(rad, 0, 7)
radius = rad
/obj/item/integrated_circuit/input/advanced_locator/do_work()
diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm
index 4f029dce6e..bbfcb25f94 100644
--- a/code/modules/integrated_electronics/subtypes/output.dm
+++ b/code/modules/integrated_electronics/subtypes/output.dm
@@ -103,7 +103,7 @@
var/brightness = get_pin_data(IC_INPUT, 2)
if(new_color && isnum(brightness))
- brightness = Clamp(brightness, 0, 6)
+ brightness = CLAMP(brightness, 0, 6)
light_rgb = new_color
light_brightness = brightness
diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm
index e8ca2ae134..ca834b3a09 100644
--- a/code/modules/integrated_electronics/subtypes/reagents.dm
+++ b/code/modules/integrated_electronics/subtypes/reagents.dm
@@ -83,7 +83,7 @@
else
direc = 1
if(isnum(new_amount))
- new_amount = Clamp(new_amount, 0, volume)
+ new_amount = CLAMP(new_amount, 0, volume)
transfer_amount = new_amount
@@ -132,7 +132,7 @@
if(!TS.Adjacent(TT))
activate_pin(3)
return
- var/tramount = Clamp(min(transfer_amount, reagents.maximum_volume - reagents.total_volume), 0, reagents.maximum_volume)
+ var/tramount = CLAMP(min(transfer_amount, reagents.maximum_volume - reagents.total_volume), 0, reagents.maximum_volume)
if(ismob(target))//Blood!
if(istype(target, /mob/living/carbon))
var/mob/living/carbon/T = target
@@ -207,7 +207,7 @@
else
direc = 1
if(isnum(new_amount))
- new_amount = Clamp(new_amount, 0, 50)
+ new_amount = CLAMP(new_amount, 0, 50)
transfer_amount = new_amount
/obj/item/integrated_circuit/reagent/pump/do_work()
@@ -329,7 +329,7 @@
else
direc = 1
if(isnum(new_amount))
- new_amount = Clamp(new_amount, 0, 50)
+ new_amount = CLAMP(new_amount, 0, 50)
transfer_amount = new_amount
/obj/item/integrated_circuit/reagent/filter/do_work()
diff --git a/code/modules/media/mediamanager.dm b/code/modules/media/mediamanager.dm
index 83da1250a7..c1cd4897ca 100644
--- a/code/modules/media/mediamanager.dm
+++ b/code/modules/media/mediamanager.dm
@@ -149,7 +149,7 @@
if (url != targetURL || abs(targetStartTime - start_time) > 1 || abs(targetVolume - source_volume) > 0.1 /* 10% */)
url = targetURL
start_time = targetStartTime
- source_volume = Clamp(targetVolume, 0, 1)
+ source_volume = CLAMP(targetVolume, 0, 1)
send_update()
/datum/media_manager/proc/stop_music()
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index f03cc9ef75..3f76672610 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -273,7 +273,7 @@
else if(ores_processing[metal] == PROCESS_COMPRESS && O.compresses_to) //Compressing.
- var/can_make = Clamp(ores_stored[metal],0,sheets_per_tick-sheets)
+ var/can_make = CLAMP(ores_stored[metal],0,sheets_per_tick-sheets)
if(can_make%2>0) can_make--
var/material/M = get_material_by_name(O.compresses_to)
@@ -288,7 +288,7 @@
else if(ores_processing[metal] == PROCESS_SMELT && O.smelts_to) //Smelting.
- var/can_make = Clamp(ores_stored[metal],0,sheets_per_tick-sheets)
+ var/can_make = CLAMP(ores_stored[metal],0,sheets_per_tick-sheets)
var/material/M = get_material_by_name(O.smelts_to)
if(!istype(M) || !can_make || ores_stored[metal] < 1)
diff --git a/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm b/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm
index 79e876a985..815914f40c 100644
--- a/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm
+++ b/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm
@@ -99,10 +99,10 @@
/datum/mob_descriptor/proc/get_comparative_value_string_smaller(var/value, var/datum/gender/my_gender, var/datum/gender/other_gender)
var/maxval = LAZYLEN(comparative_value_descriptors_smaller)
- value = Clamp(CEILING(value * maxval, 1), 1, maxval)
+ value = CLAMP(CEILING(value * maxval, 1), 1, maxval)
return comparative_value_descriptors_smaller[value]
/datum/mob_descriptor/proc/get_comparative_value_string_larger(var/value, var/datum/gender/my_gender, var/datum/gender/other_gender)
var/maxval = LAZYLEN(comparative_value_descriptors_larger)
- value = Clamp(CEILING(value * maxval, 1), 1, maxval)
+ value = CLAMP(CEILING(value * maxval, 1), 1, maxval)
return comparative_value_descriptors_larger[value]
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index 304e74c96c..187ebd4e1e 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -138,19 +138,19 @@
var/turf_move_cost = T.movement_cost
if(istype(T, /turf/simulated/floor/water))
if(species.water_movement)
- turf_move_cost = Clamp(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + species.water_movement, 15)
+ turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + species.water_movement, 15)
if(shoes)
var/obj/item/clothing/shoes/feet = shoes
if(feet.water_speed)
- turf_move_cost = Clamp(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + feet.water_speed, 15)
+ turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + feet.water_speed, 15)
. += turf_move_cost
if(istype(T, /turf/simulated/floor/outdoors/snow))
if(species.snow_movement)
- turf_move_cost = Clamp(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + species.snow_movement, 15)
+ turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + species.snow_movement, 15)
if(shoes)
var/obj/item/clothing/shoes/feet = shoes
if(feet.water_speed)
- turf_move_cost = Clamp(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + feet.snow_speed, 15)
+ turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + feet.snow_speed, 15)
. += turf_move_cost
#undef HUMAN_LOWEST_SLOWDOWN
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 41cdc18034..f3d86e9f76 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -257,7 +257,7 @@
if(gene.is_active(src))
gene.OnMobLife(src)
- radiation = Clamp(radiation,0,250)
+ radiation = CLAMP(radiation,0,250)
if(!radiation)
if(species.appearance_flags & RADIATION_GLOWS)
@@ -516,7 +516,7 @@
if(toxins_pp > safe_toxins_max)
var/ratio = (poison/safe_toxins_max) * 10
if(reagents)
- reagents.add_reagent("toxin", Clamp(ratio, MIN_TOXIN_DAMAGE, MAX_TOXIN_DAMAGE))
+ reagents.add_reagent("toxin", CLAMP(ratio, MIN_TOXIN_DAMAGE, MAX_TOXIN_DAMAGE))
breath.adjust_gas(poison_type, -poison/6, update = 0) //update after
phoron_alert = max(phoron_alert, 1)
else
diff --git a/code/modules/mob/living/carbon/human/species/species_attack.dm b/code/modules/mob/living/carbon/human/species/species_attack.dm
index 2654715f74..9e6a07d168 100644
--- a/code/modules/mob/living/carbon/human/species/species_attack.dm
+++ b/code/modules/mob/living/carbon/human/species/species_attack.dm
@@ -27,7 +27,7 @@
var/datum/gender/T = gender_datums[user.get_visible_gender()]
var/datum/gender/TT = gender_datums[target.get_visible_gender()]
if(!skill) skill = 1
- attack_damage = Clamp(attack_damage, 1, 5)
+ attack_damage = CLAMP(attack_damage, 1, 5)
if(target == user)
user.visible_message("
[user] [pick(attack_verb)] [T.himself] in the [affecting.name]!")
diff --git a/code/modules/mob/living/carbon/human/species/species_attack_vr.dm b/code/modules/mob/living/carbon/human/species/species_attack_vr.dm
index f7e1e43e31..658a453afc 100644
--- a/code/modules/mob/living/carbon/human/species/species_attack_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/species_attack_vr.dm
@@ -9,7 +9,7 @@
/datum/unarmed_attack/bite/sharp/numbing/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage)
var/obj/item/organ/external/affecting = target.get_organ(zone)
- attack_damage = Clamp(attack_damage, 1, 5)
+ attack_damage = CLAMP(attack_damage, 1, 5)
if(target == user)
user.visible_message("
[user] [pick(attack_verb)] \himself in the [affecting.name]!")
return 0 //No venom for you.
diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm
index 2dcd3a0433..55e6215fc7 100644
--- a/code/modules/mob/living/carbon/human/species/station/alraune.dm
+++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm
@@ -207,7 +207,7 @@
var/co2buff = 0
if(inhaling)
- co2buff = (Clamp(inhale_pp, 0, minimum_breath_pressure))/minimum_breath_pressure //returns a value between 0 and 1.
+ co2buff = (CLAMP(inhale_pp, 0, minimum_breath_pressure))/minimum_breath_pressure //returns a value between 0 and 1.
var/light_amount = fullysealed ? H.getlightlevel() : H.getlightlevel()/5 // if they're covered, they're not going to get much light on them.
@@ -222,7 +222,7 @@
if(toxins_pp > safe_toxins_max)
var/ratio = (poison/safe_toxins_max) * 10
if(H.reagents)
- H.reagents.add_reagent("toxin", Clamp(ratio, MIN_TOXIN_DAMAGE, MAX_TOXIN_DAMAGE))
+ H.reagents.add_reagent("toxin", CLAMP(ratio, MIN_TOXIN_DAMAGE, MAX_TOXIN_DAMAGE))
breath.adjust_gas(poison_type, -poison/6, update = 0) //update after
H.phoron_alert = max(H.phoron_alert, 1)
else
diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm
index 6ec4ce2954..f3526983ef 100644
--- a/code/modules/mob/living/carbon/human/unarmed_attack.dm
+++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm
@@ -139,7 +139,7 @@ var/global/list/sparring_attack_cache = list()
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
var/datum/gender/TT = gender_datums[target.get_visible_gender()]
- attack_damage = Clamp(attack_damage, 1, 5) // We expect damage input of 1 to 5 for this proc. But we leave this check juuust in case.
+ attack_damage = CLAMP(attack_damage, 1, 5) // We expect damage input of 1 to 5 for this proc. But we leave this check juuust in case.
if(target == user)
user.visible_message("
[user] [pick(attack_verb)] [TU.himself] in the [organ]!")
@@ -213,7 +213,7 @@ var/global/list/sparring_attack_cache = list()
var/datum/gender/TT = gender_datums[target.get_visible_gender()]
var/organ = affecting.name
- attack_damage = Clamp(attack_damage, 1, 5)
+ attack_damage = CLAMP(attack_damage, 1, 5)
switch(attack_damage)
if(1 to 2) user.visible_message("
[user] threw [target] a glancing [pick(attack_noun)] to the [organ]!") //it's not that they're kicking lightly, it's that the kick didn't quite connect
@@ -259,7 +259,7 @@ var/global/list/sparring_attack_cache = list()
var/obj/item/clothing/shoes = user.shoes
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
- attack_damage = Clamp(attack_damage, 1, 5)
+ attack_damage = CLAMP(attack_damage, 1, 5)
switch(attack_damage)
if(1 to 4) user.visible_message("
[pick("[user] stomped on", "[user] slammed [TU.his] [shoes ? copytext(shoes.name, 1, -1) : "foot"] down onto")] [target]'s [organ]!")
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 6a91f7aa23..75a291632c 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1333,4 +1333,19 @@ default behaviour is:
return makes_dirt
/mob/living/proc/needs_to_breathe()
- return !isSynthetic()
\ No newline at end of file
+ return !isSynthetic()
+
+/mob/living/vv_get_header()
+ . = ..()
+ . += {"
+
[src]
+
[ckey ? ckey : "No ckey"] / [real_name ? real_name : "No real name"]
+
+ BRUTE:[getBruteLoss()]
+ FIRE:[getFireLoss()]
+ TOXIN:[getToxLoss()]
+ OXY:[getOxyLoss()]
+ CLONE:[getCloneLoss()]
+ BRAIN:[getBrainLoss()]
+
+ "}
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 87145b46fc..b3ee75349c 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -365,7 +365,7 @@
return
/mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person
- fire_stacks = Clamp(fire_stacks + add_fire_stacks, FIRE_MIN_STACKS, FIRE_MAX_STACKS)
+ fire_stacks = CLAMP(fire_stacks + add_fire_stacks, FIRE_MIN_STACKS, FIRE_MAX_STACKS)
/mob/living/proc/handle_fire()
if(fire_stacks < 0)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 48c741c140..63cb5c0ffe 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -900,10 +900,10 @@
return
/mob/proc/AdjustLosebreath(amount)
- losebreath = Clamp(0, losebreath + amount, 25)
+ losebreath = CLAMP(0, losebreath + amount, 25)
/mob/proc/SetLosebreath(amount)
- losebreath = Clamp(0, amount, 25)
+ losebreath = CLAMP(0, amount, 25)
/mob/proc/get_species()
return ""
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 0bf523a48e..b335faf1d3 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -382,7 +382,7 @@
//It's easier to break out of a grab by a smaller mob
break_strength += max(size_difference(affecting, assailant), 0)
- var/break_chance = break_chance_table[Clamp(break_strength, 1, break_chance_table.len)]
+ var/break_chance = break_chance_table[CLAMP(break_strength, 1, break_chance_table.len)]
if(prob(break_chance))
if(state == GRAB_KILL)
reset_kill_state()
diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm
index a497bd0cc5..a3e4c14660 100644
--- a/code/modules/mob/mob_grab_specials.dm
+++ b/code/modules/mob/mob_grab_specials.dm
@@ -61,7 +61,7 @@
target << "
You feel extreme pain!"
var/max_halloss = round(target.species.total_health * 0.8) //up to 80% of passing out
- affecting.adjustHalLoss(Clamp(0, max_halloss - affecting.halloss, 30))
+ affecting.adjustHalLoss(CLAMP(0, max_halloss - affecting.halloss, 30))
/obj/item/weapon/grab/proc/attack_eye(mob/living/carbon/human/target, mob/living/carbon/human/attacker)
if(!istype(attacker))
diff --git a/code/modules/nano/modules/law_manager.dm b/code/modules/nano/modules/law_manager.dm
index 0b56c7b32a..ae8473c8ce 100644
--- a/code/modules/nano/modules/law_manager.dm
+++ b/code/modules/nano/modules/law_manager.dm
@@ -94,7 +94,7 @@
if(href_list["change_supplied_law_position"])
var/new_position = input(usr, "Enter new supplied law position between 1 and [MAX_SUPPLIED_LAW_NUMBER], inclusive. Inherent laws at the same index as a supplied law will not be stated.", "Law Position", supplied_law_position) as num|null
if(isnum(new_position) && can_still_topic())
- supplied_law_position = Clamp(new_position, 1, MAX_SUPPLIED_LAW_NUMBER)
+ supplied_law_position = CLAMP(new_position, 1, MAX_SUPPLIED_LAW_NUMBER)
return 1
if(href_list["edit_law"])
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index 0c496b39be..2309876e94 100644
--- a/code/modules/organs/organ.dm
+++ b/code/modules/organs/organ.dm
@@ -97,7 +97,7 @@ var/list/organ_cache = list()
owner.can_defib = 0
/obj/item/organ/proc/adjust_germ_level(var/amount) // Unless you're setting germ level directly to 0, use this proc instead
- germ_level = Clamp(germ_level + amount, 0, INFECTION_LEVEL_MAX)
+ germ_level = CLAMP(germ_level + amount, 0, INFECTION_LEVEL_MAX)
/obj/item/organ/process()
diff --git a/code/modules/overmap/ships/computers/engine_control.dm b/code/modules/overmap/ships/computers/engine_control.dm
index 85ac9cf993..4316762671 100644
--- a/code/modules/overmap/ships/computers/engine_control.dm
+++ b/code/modules/overmap/ships/computers/engine_control.dm
@@ -70,13 +70,13 @@
if(href_list["set_limit"])
var/datum/ship_engine/E = locate(href_list["engine"])
var/newlim = input("Input new thrust limit (0..100)", "Thrust limit", E.get_thrust_limit()) as num
- var/limit = Clamp(newlim/100, 0, 1)
+ var/limit = CLAMP(newlim/100, 0, 1)
if(E)
E.set_thrust_limit(limit)
if(href_list["limit"])
var/datum/ship_engine/E = locate(href_list["engine"])
- var/limit = Clamp(E.get_thrust_limit() + text2num(href_list["limit"]), 0, 1)
+ var/limit = CLAMP(E.get_thrust_limit() + text2num(href_list["limit"]), 0, 1)
if(E)
E.set_thrust_limit(limit)
diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm
index 58048bac5f..e31560f9e3 100644
--- a/code/modules/overmap/ships/computers/helm.dm
+++ b/code/modules/overmap/ships/computers/helm.dm
@@ -130,9 +130,9 @@
R.fields["y"] = linked.y
if("new")
var/newx = input("Input new entry x coordinate", "Coordinate input", linked.x) as num
- R.fields["x"] = Clamp(newx, 1, world.maxx)
+ R.fields["x"] = CLAMP(newx, 1, world.maxx)
var/newy = input("Input new entry y coordinate", "Coordinate input", linked.y) as num
- R.fields["y"] = Clamp(newy, 1, world.maxy)
+ R.fields["y"] = CLAMP(newy, 1, world.maxy)
known_sectors += R
if (href_list["remove"])
@@ -142,12 +142,12 @@
if (href_list["setx"])
var/newx = input("Input new destiniation x coordinate", "Coordinate input", dx) as num|null
if (newx)
- dx = Clamp(newx, 1, world.maxx)
+ dx = CLAMP(newx, 1, world.maxx)
if (href_list["sety"])
var/newy = input("Input new destiniation y coordinate", "Coordinate input", dy) as num|null
if (newy)
- dy = Clamp(newy, 1, world.maxy)
+ dy = CLAMP(newy, 1, world.maxy)
if (href_list["x"] && href_list["y"])
dx = text2num(href_list["x"])
diff --git a/code/modules/overmap/ships/ship.dm b/code/modules/overmap/ships/ship.dm
index b7849db860..0abd450a69 100644
--- a/code/modules/overmap/ships/ship.dm
+++ b/code/modules/overmap/ships/ship.dm
@@ -53,8 +53,8 @@
return res
/obj/effect/map/ship/proc/adjust_speed(n_x, n_y)
- speed[1] = Clamp(speed[1] + n_x, -default_delay, default_delay)
- speed[2] = Clamp(speed[2] + n_y, -default_delay, default_delay)
+ speed[1] = CLAMP(speed[1] + n_x, -default_delay, default_delay)
+ speed[2] = CLAMP(speed[2] + n_y, -default_delay, default_delay)
if(is_still())
toggle_move_stars(map_z)
else
diff --git a/code/modules/power/fusion/core/_core.dm b/code/modules/power/fusion/core/_core.dm
index b66941c915..99b0346e62 100644
--- a/code/modules/power/fusion/core/_core.dm
+++ b/code/modules/power/fusion/core/_core.dm
@@ -94,7 +94,7 @@ var/list/fusion_cores = list()
. = owned_field.bullet_act(Proj)
/obj/machinery/power/fusion_core/proc/set_strength(var/value)
- value = Clamp(value, MIN_FIELD_STR, MAX_FIELD_STR)
+ value = CLAMP(value, MIN_FIELD_STR, MAX_FIELD_STR)
field_strength = value
active_power_usage = 5 * value
if(owned_field)
diff --git a/code/modules/power/fusion/core/core_control.dm b/code/modules/power/fusion/core/core_control.dm
index 0dca71a4d1..dc5e16c87e 100644
--- a/code/modules/power/fusion/core/core_control.dm
+++ b/code/modules/power/fusion/core/core_control.dm
@@ -140,7 +140,7 @@
return
if(href_list["access_device"])
- var/idx = Clamp(text2num(href_list["toggle_active"]), 1, connected_devices.len)
+ var/idx = CLAMP(text2num(href_list["toggle_active"]), 1, connected_devices.len)
cur_viewed_device = connected_devices[idx]
updateUsrDialog()
return 1
diff --git a/code/modules/power/fusion/gyrotron/gyrotron_control.dm b/code/modules/power/fusion/gyrotron/gyrotron_control.dm
index 958e03f06f..4f5abdbd3b 100644
--- a/code/modules/power/fusion/gyrotron/gyrotron_control.dm
+++ b/code/modules/power/fusion/gyrotron/gyrotron_control.dm
@@ -73,7 +73,7 @@
if(!new_val)
to_chat(usr, "
That's not a valid number.")
return 1
- G.mega_energy = Clamp(new_val, 1, 50)
+ G.mega_energy = CLAMP(new_val, 1, 50)
G.active_power_usage = G.mega_energy * 1500
updateUsrDialog()
return 1
@@ -83,7 +83,7 @@
if(!new_val)
to_chat(usr, "
That's not a valid number.")
return 1
- G.rate = Clamp(new_val, 1, 10)
+ G.rate = CLAMP(new_val, 1, 10)
updateUsrDialog()
return 1
diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm
index e557bfce5a..8c404e05c0 100644
--- a/code/modules/power/tesla/energy_ball.dm
+++ b/code/modules/power/tesla/energy_ball.dm
@@ -65,7 +65,7 @@
set_dir(tesla_zap(src, 7, TESLA_DEFAULT_POWER, TRUE))
for (var/ball in orbiting_balls)
- var/range = rand(1, Clamp(orbiting_balls.len, 3, 7))
+ var/range = rand(1, CLAMP(orbiting_balls.len, 3, 7))
tesla_zap(ball, range, TESLA_MINI_POWER/7*range, TRUE)
else
energy = 0 // ensure we dont have miniballs of miniballs
@@ -288,7 +288,7 @@
closest_grounding_rod.tesla_act(power, explosive, stun_mobs)
else if(closest_mob)
- var/shock_damage = Clamp(round(power/400), 10, 90) + rand(-5, 5)
+ var/shock_damage = CLAMP(round(power/400), 10, 90) + rand(-5, 5)
closest_mob.electrocute_act(shock_damage, source, 1 - closest_mob.get_shock_protection(), ran_zone())
log_game("TESLA([source.x],[source.y],[source.z]) Shocked [key_name(closest_mob)] for [shock_damage]dmg.")
message_admins("Tesla zapped [key_name_admin(closest_mob)]!")
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 65c5d4c783..b2635b8fab 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -177,21 +177,21 @@
if(href_list["amount"])
var/id = href_list["add"]
- var/amount = Clamp((text2num(href_list["amount"])), 0, 200)
+ var/amount = CLAMP((text2num(href_list["amount"])), 0, 200)
R.trans_id_to(src, id, amount)
else if (href_list["addcustom"])
var/id = href_list["addcustom"]
useramount = input("Select the amount to transfer.", 30, useramount) as num
- useramount = Clamp(useramount, 0, 200)
+ useramount = CLAMP(useramount, 0, 200)
src.Topic(null, list("amount" = "[useramount]", "add" = "[id]"))
else if (href_list["remove"])
if(href_list["amount"])
var/id = href_list["remove"]
- var/amount = Clamp((text2num(href_list["amount"])), 0, 200)
+ var/amount = CLAMP((text2num(href_list["amount"])), 0, 200)
if(mode)
reagents.trans_id_to(beaker, id, amount)
else
@@ -202,7 +202,7 @@
var/id = href_list["removecustom"]
useramount = input("Select the amount to transfer.", 30, useramount) as num
- useramount = Clamp(useramount, 0, 200)
+ useramount = CLAMP(useramount, 0, 200)
src.Topic(null, list("amount" = "[useramount]", "remove" = "[id]"))
else if (href_list["toggle"])
@@ -224,7 +224,7 @@
count = input("Select the number of pills to make.", "Max [max_pill_count]", pillamount) as null|num
if(!count) //Covers 0 and cancel
return
- count = Clamp(count, 1, max_pill_count)
+ count = CLAMP(count, 1, max_pill_count)
if(reagents.total_volume/count < 1) //Sanity checking.
return
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 19afc0f564..75fb5fff2a 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -169,6 +169,11 @@ var/global/list/obj/machinery/message_server/message_servers = list()
var/value
var/details
+/datum/feedback_variable/vv_edit_var(var_name, var_value)
+ if(var_name == NAMEOF(src, variable) || var_name == NAMEOF(src, value) || var_name == NAMEOF(src, details))
+ return FALSE
+ return ..()
+
/datum/feedback_variable/New(var/param_variable,var/param_value = 0)
variable = param_variable
value = param_value
@@ -319,6 +324,15 @@ var/obj/machinery/blackbox_recorder/blackbox
feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set.
+/obj/machinery/blackbox_recorder/vv_edit_var(var_name, var_value)
+ var/static/list/blocked_vars //hacky as fuck kill me
+ if(!blocked_vars)
+ var/obj/machinery/M = new
+ var/list/parent_vars = M.vars.Copy()
+ blocked_vars = vars.Copy() - parent_vars
+ if(var_name in blocked_vars)
+ return FALSE
+ return ..()
//This proc is only to be called at round end.
/obj/machinery/blackbox_recorder/proc/save_all_data_to_sql()
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index 43784ef42a..277463bddc 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -173,7 +173,7 @@
return
if(telepad)
- var/trueDistance = Clamp(distance + distance_off, 1, get_max_allowed_distance())
+ var/trueDistance = CLAMP(distance + distance_off, 1, get_max_allowed_distance())
var/trueRotation = rotation + rotation_off
var/datum/projectile_data/proj_data = simple_projectile_trajectory(telepad.x, telepad.y, trueRotation, trueDistance)
@@ -283,7 +283,7 @@
updateDialog()
/obj/machinery/computer/telescience/proc/teleport(mob/user)
- distance = Clamp(distance, 0, get_max_allowed_distance())
+ distance = CLAMP(distance, 0, get_max_allowed_distance())
if(rotation == null || distance == null || z_co == null)
temp_msg = "ERROR!
Set a distance, rotation and sector."
return
@@ -320,14 +320,14 @@
var/new_rot = input("Please input desired bearing in degrees.", name, rotation) as num
if(..()) // Check after we input a value, as they could've moved after they entered something
return
- rotation = Clamp(new_rot, -900, 900)
+ rotation = CLAMP(new_rot, -900, 900)
rotation = round(rotation, 0.01)
if(href_list["setdistance"])
var/new_pow = input("Please input desired distance in meters.", name, rotation) as num
if(..()) // Check after we input a value, as they could've moved after they entered something
return
- distance = Clamp(new_pow, 1, get_max_allowed_distance())
+ distance = CLAMP(new_pow, 1, get_max_allowed_distance())
distance = FLOOR(distance, 1)
if(href_list["setz"])
diff --git a/code/modules/virus2/admin.dm b/code/modules/virus2/admin.dm
index dc10bc85f9..e2821db1a9 100644
--- a/code/modules/virus2/admin.dm
+++ b/code/modules/virus2/admin.dm
@@ -15,7 +15,7 @@
return 1
-/datum/disease2/disease/get_view_variables_header()
+/datum/disease2/disease/vv_get_header()
. = list()
for(var/datum/disease2/effectholder/E in effects)
. += "[E.stage]: [E.effect.name]"
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 772d008dd0..26c03300a2 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -71,12 +71,12 @@
//
// Hide vore organs in contents
//
-/mob/living/view_variables_filter_contents(list/L)
- . = ..()
- var/len_before = L.len
- L -= vore_organs
- . += len_before - L.len
-
+///mob/living/view_variables_filter_contents(list/L)
+// . = ..()
+// var/len_before = L.len
+// L -= vore_organs
+// . += len_before - L.len
+//
//
// Handle being clicked, perhaps with something to devour
//
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index 679fe389de..336b86b5a4 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -654,14 +654,14 @@
var/new_damage = input(user, "Choose the amount of burn damage prey will take per tick. Ranges from 0 to 6.", "Set Belly Burn Damage.", selected.digest_burn) as num|null
if(new_damage == null)
return
- var/new_new_damage = Clamp(new_damage, 0, 6)
+ var/new_new_damage = CLAMP(new_damage, 0, 6)
selected.digest_burn = new_new_damage
if(href_list["b_brute_dmg"])
var/new_damage = input(user, "Choose the amount of brute damage prey will take per tick. Ranges from 0 to 6", "Set Belly Brute Damage.", selected.digest_brute) as num|null
if(new_damage == null)
return
- var/new_new_damage = Clamp(new_damage, 0, 6)
+ var/new_new_damage = CLAMP(new_damage, 0, 6)
selected.digest_brute = new_new_damage
if(href_list["b_escapable"])
diff --git a/code/modules/xenoarcheaology/tools/tools.dm b/code/modules/xenoarcheaology/tools/tools.dm
index 00eb61b79b..c5eb9b35ac 100644
--- a/code/modules/xenoarcheaology/tools/tools.dm
+++ b/code/modules/xenoarcheaology/tools/tools.dm
@@ -254,7 +254,7 @@
if(prob(scan_ticks * 10))
spawn(0)
set background = 1
- if(is_processing)
+ if(datum_flags & DF_ISPROCESSING)
//scan radios in the world to try and find one
var/cur_dist = 999
for(var/obj/item/device/radio/beacon/R in all_beacons)
diff --git a/code/world.dm b/code/world.dm
index ccd0bc26d0..d9643ea2f2 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -299,7 +299,7 @@ var/world_topic_spam_protect_time = world.timeofday
info["hasbeenrev"] = M.mind ? M.mind.has_been_rev : "No mind"
info["stat"] = M.stat
info["type"] = M.type
- if(isliving(M))
+ if(istype(M, /mob/living))
var/mob/living/L = M
info["damage"] = list2params(list(
oxy = L.getOxyLoss(),
@@ -669,7 +669,7 @@ proc/establish_old_db_connection()
// Things to do when a new z-level was just made.
/world/proc/max_z_changed()
- if(!islist(GLOB.players_by_zlevel))
+ if(!istype(GLOB.players_by_zlevel, /list))
GLOB.players_by_zlevel = new /list(world.maxz, 0)
while(GLOB.players_by_zlevel.len < world.maxz)
GLOB.players_by_zlevel.len++
diff --git a/vorestation.dme b/vorestation.dme
index 8ef0fc1910..520d84a4d0 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -44,6 +44,7 @@
#include "code\__defines\holomap.dm"
#include "code\__defines\integrated_circuits.dm"
#include "code\__defines\inventory_sizes.dm"
+#include "code\__defines\is_helpers.dm"
#include "code\__defines\items_clothing.dm"
#include "code\__defines\lighting.dm"
#include "code\__defines\machinery.dm"
@@ -74,6 +75,7 @@
#include "code\__defines\typeids.dm"
#include "code\__defines\unit_tests.dm"
#include "code\__defines\vote.dm"
+#include "code\__defines\vv.dm"
#include "code\__defines\xenoarcheaology.dm"
#include "code\__defines\ZAS.dm"
#include "code\_compatibility\509\_JSON.dm"
@@ -81,6 +83,7 @@
#include "code\_compatibility\509\JSON Writer.dm"
#include "code\_compatibility\509\text.dm"
#include "code\_compatibility\509\type2type.dm"
+#include "code\_global_vars\bitfields.dm"
#include "code\_global_vars\misc.dm"
#include "code\_global_vars\mobs.dm"
#include "code\_global_vars\sensitive.dm"
@@ -1424,8 +1427,6 @@
#include "code\modules\admin\verbs\lightning_strike.dm"
#include "code\modules\admin\verbs\map_template_loadverb.dm"
#include "code\modules\admin\verbs\mapping.dm"
-#include "code\modules\admin\verbs\massmodvar.dm"
-#include "code\modules\admin\verbs\modifyvariables.dm"
#include "code\modules\admin\verbs\panicbunker.dm"
#include "code\modules\admin\verbs\playsound.dm"
#include "code\modules\admin\verbs\possess.dm"
@@ -1439,7 +1440,12 @@
#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"
#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm"
#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm"
-#include "code\modules\admin\view_variables\helpers.dm"
+#include "code\modules\admin\view_variables\admin_delete.dm"
+#include "code\modules\admin\view_variables\debug_variables.dm"
+#include "code\modules\admin\view_variables\get_variables.dm"
+#include "code\modules\admin\view_variables\helpers_deprecated.dm"
+#include "code\modules\admin\view_variables\mass_edit_variables.dm"
+#include "code\modules\admin\view_variables\modify_variables.dm"
#include "code\modules\admin\view_variables\topic.dm"
#include "code\modules\admin\view_variables\view_variables.dm"
#include "code\modules\ai\_defines.dm"