Merge remote-tracking branch 'upstream/master' into lungsss

# Conflicts:
#	code/modules/mob/living/carbon/alien/humanoid/life.dm
#	code/modules/mob/living/carbon/human/life.dm
#	code/modules/mob/living/carbon/human/species/station.dm
#	code/modules/surgery/surgery.dm
This commit is contained in:
Fox-McCloud
2017-08-05 19:03:52 -04:00
368 changed files with 4818 additions and 14392 deletions
+13 -4
View File
@@ -89,7 +89,8 @@
if("delete")
for(var/d in objs)
qdel(d)
if(!datum_is_forbidden(d))
qdel(d)
if("select")
var/text = ""
@@ -117,6 +118,9 @@
if("set" in query_tree)
var/list/set_list = query_tree["set"]
for(var/d in objs)
// Forbid explicitly modifying an admin datum's vars
if(datum_is_forbidden(d))
return
for(var/list/sets in set_list)
var/datum/temp = d
var/i = 0
@@ -124,11 +128,11 @@
if(++i == sets.len)
if(istype(temp, /turf) && (v == "x" || v == "y" || v == "z"))
continue
if(istype(temp.vars[v], /datum/admins))
continue
if(!datum_is_forbidden(temp.vars[v]))
return
temp.vars[v] = SDQL_expression(d, set_list[sets])
break
if(temp.vars.Find(v) && (istype(temp.vars[v], /datum) || istype(temp.vars[v], /client)) && !istype(temp.vars[v], /datum/admins))
if(temp.vars.Find(v) && (istype(temp.vars[v], /datum) || istype(temp.vars[v], /client)) && !datum_is_forbidden(temp.vars[v]))
temp = temp.vars[v]
else
break
@@ -436,6 +440,11 @@
for(var/arg in arguments)
new_args[++new_args.len] = SDQL_expression(source, arg)
for(var/p in forbidden_varedit_object_types)
if(istype(object, p))
to_chat(usr, "<span class='warning'>It is forbidden to run this object's procs.</span>")
return
if(object == world) // Global proc.
procname = "/proc/[procname]"
return call(procname)(arglist(new_args))
+1
View File
@@ -93,6 +93,7 @@ var/global/sent_honksquad = 0
new_honksquad.mind_initialize()
new_honksquad.mind.assigned_role = "MODE"
new_honksquad.mind.special_role = SPECIAL_ROLE_HONKSQUAD
new_honksquad.add_language("Clownish")
ticker.mode.traitors |= new_honksquad.mind//Adds them to current traitor list. Which is really the extra antagonist list.
new_honksquad.equip_honksquad(honk_leader_selected)
return new_honksquad
+10 -2
View File
@@ -13,6 +13,14 @@ var/list/forbidden_varedit_object_types = list(
feedback_add_details("admin_verb","EDITV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
*/
/proc/datum_is_forbidden(type)
for(var/p in forbidden_varedit_object_types)
if(istype(type, p))
to_chat(usr, "<span class='warning'>It is forbidden to tamper with this object.</span>")
return FALSE
return TRUE
/client/proc/cmd_modify_ticker_variables()
set category = "Debug"
set name = "Edit Ticker Variables"
@@ -131,7 +139,7 @@ var/list/forbidden_varedit_object_types = list(
L[var_value] = mod_list_add_ass() //haha
if("No")
L += var_value
/client/proc/mod_list(var/list/L)
if(!check_rights(R_VAREDIT)) return
@@ -497,4 +505,4 @@ var/list/forbidden_varedit_object_types = list(
to_chat(usr, "Variable type is <b>UNKNOWN</b>.")
class = null
return class
return class
+1 -1
View File
@@ -513,7 +513,7 @@ client/proc/one_click_antag()
new_vox.update_eyes()
for(var/obj/item/organ/external/limb in new_vox.bodyparts)
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
limb.status &= ~ORGAN_ROBOT
//Now apply cortical stack.
var/obj/item/weapon/implant/cortical/I = new(new_vox)
+2 -2
View File
@@ -6,7 +6,7 @@ var/list/sounds_cache = list()
if(!check_rights(R_SOUNDS))
return
var/sound/awful_sound = sound(null, repeat = 0, wait = 0, channel = 777)
var/sound/awful_sound = sound(null, repeat = 0, wait = 0, channel = CHANNEL_ADMIN)
log_admin("[key_name(src)] stopped admin sounds.")
message_admins("[key_name_admin(src)] stopped admin sounds.", 1)
@@ -18,7 +18,7 @@ var/list/sounds_cache = list()
set name = "Play Global Sound"
if(!check_rights(R_SOUNDS)) return
var/sound/uploaded_sound = sound(S, repeat = 0, wait = 1, channel = 777)
var/sound/uploaded_sound = sound(S, repeat = 0, wait = 1, channel = CHANNEL_ADMIN)
uploaded_sound.priority = 250
sounds_cache += S