diff --git a/code/__HELPERS/admin.dm b/code/__HELPERS/admin.dm
new file mode 100644
index 0000000000..63df20ce46
--- /dev/null
+++ b/code/__HELPERS/admin.dm
@@ -0,0 +1,9 @@
+/// Returns if the given client is an admin, REGARDLESS of if they're deadminned or not.
+/proc/is_admin(client/client)
+ return !isnull(GLOB.admin_datums[client.ckey]) || !isnull(GLOB.deadmins[client.ckey])
+
+/// Sends a message in the event that someone attempts to elevate their permissions through invoking a certain proc.
+/proc/alert_to_permissions_elevation_attempt(mob/user)
+ var/message = " has tried to elevate permissions!"
+ message_admins(key_name_admin(user) + message)
+ log_admin(key_name(user) + message)
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index 05c16c12ed..cb88f56dcb 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -213,7 +213,7 @@
our_hud = null
return ..()
-/atom/movable/screen/button_palette/Initialize(mapload)
+/atom/movable/screen/button_palette/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_appearance()
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 3124845e18..1e5c3b292b 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -525,7 +525,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
var/angle = 0
var/mob/living/simple_animal/hostile/construct/Cviewer = null
-/atom/movable/screen/alert/bloodsense/Initialize(mapload)
+/atom/movable/screen/alert/bloodsense/Initialize(mapload, datum/hud/hud_owner)
. = ..()
narnar = new('icons/mob/screen_alert.dmi', "mini_nar")
START_PROCESSING(SSprocessing, src)
diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm
index 73986095de..eb6bdfe995 100644
--- a/code/_onclick/hud/credits.dm
+++ b/code/_onclick/hud/credits.dm
@@ -39,7 +39,7 @@
var/client/parent
var/matrix/target
-/atom/movable/screen/credit/Initialize(mapload, credited, client/P, icon/I)
+/atom/movable/screen/credit/Initialize(mapload, datum/hud/hud_owner, credited, client/P, icon/I)
. = ..()
icon = I
parent = P
@@ -55,14 +55,15 @@
animate(src, alpha = 255, time = CREDIT_EASE_DURATION, flags = ANIMATION_PARALLEL)
addtimer(CALLBACK(src, PROC_REF(FadeOut)), CREDIT_ROLL_SPEED - CREDIT_EASE_DURATION)
QDEL_IN(src, CREDIT_ROLL_SPEED)
- P.screen += src
+ if(parent)
+ parent.screen += src
/atom/movable/screen/credit/Destroy()
- var/client/P = parent
- P.screen -= src
icon = null
- LAZYREMOVE(P.credits, src)
- parent = null
+ if(parent)
+ parent.screen -= src
+ LAZYREMOVE(parent.credits, src)
+ parent = null
return ..()
/atom/movable/screen/credit/proc/FadeOut()
diff --git a/code/_onclick/hud/families.dm b/code/_onclick/hud/families.dm
index 81da541011..af2f432aaf 100644
--- a/code/_onclick/hud/families.dm
+++ b/code/_onclick/hud/families.dm
@@ -9,7 +9,7 @@
/// Boolean, have the cops arrived? If so, the icon stops changing and remains the same.
var/cops_arrived = 0
-/atom/movable/screen/wanted/Initialize(mapload)
+/atom/movable/screen/wanted/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_icon()
diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm
index e58d330eae..f1e12bccdd 100644
--- a/code/_onclick/hud/new_player.dm
+++ b/code/_onclick/hud/new_player.dm
@@ -221,7 +221,7 @@
///Whether we are readied up for the round or not
var/ready = FALSE
-/atom/movable/screen/lobby/button/ready/Initialize(mapload)
+/atom/movable/screen/lobby/button/ready/Initialize(mapload, datum/hud/hud_owner)
. = ..()
switch(SSticker.current_state)
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
@@ -268,7 +268,7 @@
base_icon_state = "join_game"
enabled = null // set in init
-/atom/movable/screen/lobby/button/join/Initialize(mapload)
+/atom/movable/screen/lobby/button/join/Initialize(mapload, datum/hud/hud_owner)
. = ..()
switch(SSticker.current_state)
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
@@ -333,7 +333,7 @@
base_icon_state = "observe"
enabled = null // set in init
-/atom/movable/screen/lobby/button/observe/Initialize(mapload)
+/atom/movable/screen/lobby/button/observe/Initialize(mapload, datum/hud/hud_owner)
. = ..()
if(SSticker.current_state > GAME_STATE_STARTUP)
set_button_status(TRUE)
diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm
index 354a6ed546..2a23a63c50 100644
--- a/code/_onclick/hud/picture_in_picture.dm
+++ b/code/_onclick/hud/picture_in_picture.dm
@@ -14,7 +14,7 @@
var/mutable_appearance/standard_background
var/const/max_dimensions = 10
-/atom/movable/screen/movable/pic_in_pic/Initialize(mapload)
+/atom/movable/screen/movable/pic_in_pic/Initialize(mapload, datum/hud/hud_owner)
. = ..()
make_backgrounds()
@@ -55,7 +55,7 @@
add_overlay(move_tab)
if(!button_x)
- button_x = new /atom/movable/screen/component_button(null, src)
+ button_x = new /atom/movable/screen/component_button(null, hud, src)
var/mutable_appearance/MA = new /mutable_appearance()
MA.name = "close"
MA.icon = 'icons/misc/pic_in_pic.dmi'
@@ -68,7 +68,7 @@
vis_contents += button_x
if(!button_expand)
- button_expand = new /atom/movable/screen/component_button(null, src)
+ button_expand = new /atom/movable/screen/component_button(null, hud, src)
var/mutable_appearance/MA = new /mutable_appearance()
MA.name = "expand"
MA.icon = 'icons/misc/pic_in_pic.dmi'
@@ -81,7 +81,7 @@
vis_contents += button_expand
if(!button_shrink)
- button_shrink = new /atom/movable/screen/component_button(null, src)
+ button_shrink = new /atom/movable/screen/component_button(null, hud, src)
var/mutable_appearance/MA = new /mutable_appearance()
MA.name = "shrink"
MA.icon = 'icons/misc/pic_in_pic.dmi'
diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm
index 3d39440dad..2db71a7258 100644
--- a/code/_onclick/hud/plane_master.dm
+++ b/code/_onclick/hud/plane_master.dm
@@ -24,7 +24,7 @@
blend_mode = BLEND_MULTIPLY
alpha = 255
-/atom/movable/screen/plane_master/openspace/Initialize(mapload)
+/atom/movable/screen/plane_master/openspace/Initialize(mapload, datum/hud/hud_owner)
. = ..()
filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)
@@ -61,7 +61,7 @@
plane = ABOVE_WALL_PLANE
appearance_flags = PLANE_MASTER
-/atom/movable/screen/plane_master/above_wall/Initialize(mapload)
+/atom/movable/screen/plane_master/above_wall/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE))
@@ -78,7 +78,7 @@
appearance_flags = PLANE_MASTER //should use client color
blend_mode = BLEND_OVERLAY
-/atom/movable/screen/plane_master/game_world/Initialize(mapload)
+/atom/movable/screen/plane_master/game_world/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE))
@@ -95,7 +95,7 @@
render_target = FIELD_OF_VISION_RENDER_TARGET
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
-/atom/movable/screen/plane_master/field_of_vision/Initialize(mapload)
+/atom/movable/screen/plane_master/field_of_vision/Initialize(mapload, datum/hud/hud_owner)
. = ..()
filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
@@ -112,7 +112,7 @@
plane = FIELD_OF_VISION_VISUAL_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
-/atom/movable/screen/plane_master/field_of_vision_visual/Initialize(mapload)
+/atom/movable/screen/plane_master/field_of_vision_visual/Initialize(mapload, datum/hud/hud_owner)
. = ..()
filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
@@ -138,7 +138,7 @@
* This is then used to alpha mask the lighting plane.
*/
-/atom/movable/screen/plane_master/lighting/Initialize(mapload)
+/atom/movable/screen/plane_master/lighting/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("emissives", 1, alpha_mask_filter(render_source = EMISSIVE_RENDER_TARGET, flags = MASK_INVERSE))
add_filter("object_lighting", 2, alpha_mask_filter(render_source = O_LIGHTING_VISUAL_RENDER_TARGET, flags = MASK_INVERSE))
@@ -152,7 +152,7 @@
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
render_target = EMISSIVE_RENDER_TARGET
-/atom/movable/screen/plane_master/emissive/Initialize(mapload)
+/atom/movable/screen/plane_master/emissive/Initialize(mapload, datum/hud/hud_owner)
. = ..()
add_filter("em_block_masking", 1, color_matrix_filter(GLOB.em_mask_matrix))
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 5b6d6c6387..ace6303c03 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -279,7 +279,7 @@
// plane = ABOVE_HUD_PLANE
// icon_state = "backpack_close"
-// /atom/movable/screen/close/Initialize(mapload, new_master)
+// /atom/movable/screen/close/Initialize(mapload, datum/hud/hud_owner, new_master)
// . = ..()
// master = new_master
@@ -341,7 +341,7 @@
icon_state = "running"
mouse_over_pointer = MOUSE_HAND_POINTER
-/atom/movable/screen/mov_intent/Initialize(mapload)
+/atom/movable/screen/mov_intent/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_icon()
@@ -701,7 +701,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash)
mouse_over_pointer = MOUSE_HAND_POINTER
var/atom/movable/screen/parent
-/atom/movable/screen/component_button/Initialize(mapload, atom/movable/screen/parent)
+/atom/movable/screen/component_button/Initialize(mapload, datum/hud/hud_owner, atom/movable/screen/parent)
. = ..()
src.parent = parent
diff --git a/code/_onclick/hud/screen_objects/clickdelay.dm b/code/_onclick/hud/screen_objects/clickdelay.dm
index b8258c7598..dc6c3e0da7 100644
--- a/code/_onclick/hud/screen_objects/clickdelay.dm
+++ b/code/_onclick/hud/screen_objects/clickdelay.dm
@@ -25,7 +25,7 @@
icon_state = "prog_bar_100"
layer = 20 // under hand buttons
-/atom/movable/screen/action_bar/clickdelay/Initialize(mapload)
+/atom/movable/screen/action_bar/clickdelay/Initialize(mapload, datum/hud/hud_owner)
. = ..()
var/matrix/M = new
M.Scale(2, 1)
diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm
index cc96cf25e3..16804c1a78 100644
--- a/code/_onclick/hud/screen_objects/storage.dm
+++ b/code/_onclick/hud/screen_objects/storage.dm
@@ -2,7 +2,7 @@
name = "storage"
var/insertion_click = FALSE
-/atom/movable/screen/storage/Initialize(mapload, datum/hud/hud, new_master)
+/atom/movable/screen/storage/Initialize(mapload, datum/hud/hud_owner, new_master)
. = ..()
master = new_master
@@ -55,7 +55,7 @@
plane = VOLUMETRIC_STORAGE_BOX_PLANE
var/obj/item/our_item
-/atom/movable/screen/storage/volumetric_box/Initialize(mapload, datum/hud/hud, new_master, obj/item/our_item)
+/atom/movable/screen/storage/volumetric_box/Initialize(mapload, datum/hud/hud_owner, new_master, obj/item/our_item)
src.our_item = our_item
RegisterSignal(our_item, COMSIG_ITEM_MOUSE_ENTER, PROC_REF(on_item_mouse_enter))
RegisterSignal(our_item, COMSIG_ITEM_MOUSE_EXIT, PROC_REF(on_item_mouse_exit))
@@ -97,9 +97,9 @@
var/atom/movable/screen/storage/item_holder/holder
var/pixel_size
-/atom/movable/screen/storage/volumetric_box/center/Initialize(mapload, datum/hud/hud, new_master, our_item)
- left = new(null, hud, src, our_item)
- right = new(null, hud, src, our_item)
+/atom/movable/screen/storage/volumetric_box/center/Initialize(mapload, datum/hud/hud_owner, new_master, our_item)
+ left = new(null, hud_owner, src, our_item)
+ right = new(null, hud_owner, src, our_item)
return ..()
/atom/movable/screen/storage/volumetric_box/center/Destroy()
@@ -155,7 +155,7 @@
layer = VOLUMETRIC_STORAGE_BOX_LAYER
plane = VOLUMETRIC_STORAGE_BOX_PLANE
-/atom/movable/screen/storage/volumetric_edge/Initialize(mapload, datum/hud/hud, master, our_item)
+/atom/movable/screen/storage/volumetric_edge/Initialize(mapload, datum/hud/hud_owner, master, our_item)
src.master = master
return ..()
@@ -183,7 +183,7 @@
var/obj/item/our_item
vis_flags = NONE
-/atom/movable/screen/storage/item_holder/Initialize(mapload, datum/hud/hud, new_master, obj/item/I)
+/atom/movable/screen/storage/item_holder/Initialize(mapload, datum/hud/hud_owner, new_master, obj/item/I)
. = ..()
our_item = I
vis_contents += I
diff --git a/code/_onclick/hud/screentip.dm b/code/_onclick/hud/screentip.dm
index b9b27072b3..beb705133b 100644
--- a/code/_onclick/hud/screentip.dm
+++ b/code/_onclick/hud/screentip.dm
@@ -8,9 +8,8 @@
maptext = ""
layer = SCREENTIP_LAYER
-/atom/movable/screen/screentip/Initialize(mapload, _hud)
+/atom/movable/screen/screentip/Initialize(mapload, datum/hud/hud_owner)
. = ..()
- hud = _hud
update_view()
/atom/movable/screen/screentip/proc/update_view(datum/source)
diff --git a/code/datums/action.dm b/code/datums/action.dm
index 77d6b78917..a4bd371c1e 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -93,7 +93,7 @@
if(!hud.mymob)
continue
HideFrom(hud.mymob)
- LAZYREMOVE(remove_from.actions, src) // We aren't always properly inserted into the viewers list, gotta make sure that action's cleared
+ LAZYREMOVE(remove_from?.actions, src) // We aren't always properly inserted into the viewers list, gotta make sure that action's cleared
viewers = list()
if(isnull(owner))
diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm
index 8eb37eabdf..043e2f8f18 100644
--- a/code/datums/components/rotation.dm
+++ b/code/datums/components/rotation.dm
@@ -13,7 +13,7 @@
var/rotation_flags = NONE
var/default_rotation_direction = ROTATION_CLOCKWISE
-/datum/component/simple_rotation/Initialize(rotation_flags = NONE ,can_user_rotate,can_be_rotated,after_rotation)
+/datum/component/simple_rotation/Initialize(rotation_flags = NONE, can_user_rotate, can_be_rotated, after_rotation)
if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 02c5dd772b..407370dadb 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -709,7 +709,8 @@
/atom/proc/hitby(atom/movable/hitting_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
SEND_SIGNAL(src, COMSIG_ATOM_HITBY, hitting_atom, skipcatch, hitpush, blocked, throwingdatum)
if(density && !has_gravity(hitting_atom)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...).
- addtimer(CALLBACK(src, PROC_REF(hitby_react), hitting_atom), 2)
+ addtimer(CALLBACK(src, PROC_REF(hitby_react), hitting_atom), 0.2 SECONDS)
+ return FALSE
/**
* We have have actually hit the passed in atom
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 0c3524f38c..a59c5fbd22 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -390,7 +390,7 @@
/atom/movable/hitby(atom/movable/hitting_atom, skipcatch, hitpush = TRUE, blocked, datum/thrownthing/throwingdatum)
if(!anchored && hitpush && (!throwingdatum || (throwingdatum.force >= (move_resist * MOVE_FORCE_PUSH_RATIO))))
step(src, hitting_atom.dir)
- ..()
+ return ..()
/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = MOVE_FORCE_STRONG, gentle = FALSE)
if((force < (move_resist * MOVE_FORCE_THROW_RATIO)) || (move_resist == INFINITY))
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index 831041db91..a14d207423 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -47,14 +47,14 @@
if(BURN)
playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
-/obj/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+/obj/hitby(atom/movable/hit_by, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
..()
- var/throwdamage = AM.throwforce
- if(isobj(AM))
- var/obj/O = AM
- if(O.damtype == STAMINA)
+ var/throwdamage = hit_by.throwforce
+ if(isobj(hit_by))
+ var/obj/as_obj = hit_by
+ if(as_obj.damtype == STAMINA)
throwdamage = 0
- take_damage(throwdamage, BRUTE, MELEE, 1, get_dir(src, AM))
+ take_damage(throwdamage, BRUTE, MELEE, 1, get_dir(src, hit_by))
/obj/ex_act(severity, target, origin)
if(resistance_flags & INDESTRUCTIBLE)
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index ee584c5941..bda46b4afb 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -17,9 +17,9 @@
/obj/structure/chair/examine(mob/user)
. = ..()
- . += "It's held together by a couple of bolts."
+ . += span_notice("It's held together by a couple of bolts.")
if(!has_buckled_mobs())
- . += "Drag your sprite to sit in it."
+ . += span_notice("Drag your sprite to sit in it.")
/obj/structure/chair/Initialize(mapload)
. = ..()
@@ -28,7 +28,7 @@
/obj/structure/chair/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate),CALLBACK(src), PROC_REF(can_be_rotated)),null)
+ AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)), CALLBACK(src, PROC_REF(can_be_rotated)), null)
/obj/structure/chair/proc/can_be_rotated(mob/user)
return TRUE
diff --git a/code/game/turfs/open/floor/catwalk_plating.dm b/code/game/turfs/open/floor/catwalk_plating.dm
index ac0f3b63de..833bcdf60b 100644
--- a/code/game/turfs/open/floor/catwalk_plating.dm
+++ b/code/game/turfs/open/floor/catwalk_plating.dm
@@ -13,9 +13,6 @@
desc = "Flooring that shows its contents underneath. Engineers love it!"
baseturfs = /turf/open/floor/plating
footstep = FOOTSTEP_CATWALK
- barefootstep = FOOTSTEP_CATWALK
- clawfootstep = FOOTSTEP_CATWALK
- heavyfootstep = FOOTSTEP_CATWALK
intact = FALSE
var/covered = TRUE
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index 79ba4abae7..08cfbe3218 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -13,9 +13,7 @@ GLOBAL_PROTECT(protected_ranks)
/datum/admin_rank/New(init_name, init_rights, init_exclude_rights, init_edit_rights)
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
if (name == "NoRank") //only del if this is a true creation (and not just a New() proc call), other wise trialmins/coders could abuse this to deadmin other admins
QDEL_IN(src, 0)
CRASH("Admin proc call creation of admin datum")
@@ -35,9 +33,7 @@ GLOBAL_PROTECT(protected_ranks)
/datum/admin_rank/Destroy()
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return QDEL_HINT_LETMELIVE
. = ..()
@@ -93,9 +89,7 @@ GLOBAL_PROTECT(protected_ranks)
// Adds/removes rights to this admin_rank
/datum/admin_rank/proc/process_keyword(word, previous_rights=0)
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return
var/flag = admin_keyword_to_flag(word, previous_rights)
if(flag)
diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm
index ea16283070..2bd6dc9236 100644
--- a/code/modules/admin/holder2.dm
+++ b/code/modules/admin/holder2.dm
@@ -40,9 +40,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/New(datum/admin_rank/R, ckey, force_active = FALSE, protected)
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
if (!target) //only del if this is a true creation (and not just a New() proc call), other wise trialmins/coders could abuse this to deadmin other admins
QDEL_IN(src, 0)
CRASH("Admin proc call creation of admin datum")
@@ -70,17 +68,13 @@ GLOBAL_PROTECT(href_token)
/datum/admins/Destroy()
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return QDEL_HINT_LETMELIVE
. = ..()
/datum/admins/proc/activate()
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return
GLOB.deadmins -= target
GLOB.admin_datums[target] = src
@@ -91,9 +85,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/proc/deactivate()
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return
GLOB.deadmins[target] = src
GLOB.admin_datums -= target
@@ -105,9 +97,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/proc/associate(client/C)
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return
if(istype(C))
@@ -127,9 +117,7 @@ GLOBAL_PROTECT(href_token)
/datum/admins/proc/disassociate()
if(IsAdminAdvancedProcCall())
- var/msg = " has tried to elevate permissions!"
- message_admins("[key_name_admin(usr)][msg]")
- log_admin("[key_name(usr)][msg]")
+ alert_to_permissions_elevation_attempt(usr)
return
if(owner)
GLOB.admins -= owner
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 67bb59afd1..774c63e9fa 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -131,10 +131,10 @@
return FALSE
-/obj/item/assembly/mousetrap/hitby(atom/hit_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
+/obj/item/assembly/mousetrap/hitby(atom/movable/hit_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
if(!armed)
return ..()
- visible_message("[src] is triggered by [hit_atom].")
+ visible_message(span_warning("[src] is triggered by [hit_atom]."))
triggered(null)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 31f100468b..ecc1025ec3 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1221,11 +1221,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(user.client)
if(unlock_content)
dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
"
- if(unlock_content || check_rights_for(user.client, R_ADMIN))
+ if(unlock_content || is_admin(user.client))
dat += "OOC Color: [ooccolor ? ooccolor : GLOB.normal_ooc_colour] Change
"
dat += "Antag OOC Color: [aooccolor ? aooccolor : GLOB.normal_aooc_colour] Change
"
- if(user.client.holder)
+ if(is_admin(user.client))
dat += "