diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 597b755a620..85a340b6f35 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -50,7 +50,7 @@ return ..() -/mob/living/carbon/brain/update_canmove() +/mob/living/carbon/brain/update_canmove(delay_action_updates = 0) if(in_contents_of(/obj/mecha)) canmove = 1 use_me = 1 //If it can move, let it emote @@ -59,7 +59,8 @@ else canmove = 0 - update_action_buttons_icon() + if(!delay_action_updates) + update_action_buttons_icon() return canmove /mob/living/carbon/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up. diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 93103fc2cae..2da1aed1708 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -49,7 +49,7 @@ handle_disabilities() // eye, ear, brain damages handle_status_effects() //all special effects, stunned, weakened, jitteryness, hallucination, sleeping, etc - update_canmove() + update_canmove(1) // set to 1 to not update icon action buttons; rip this argument out if Life is ever refactored to be non-stupid. -Fox if(client) //regular_hud_updates() //THIS DOESN'T FUCKING UPDATE SHIT diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 6e062860eed..3cf863a3591 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -521,7 +521,7 @@ to_chat(src, "You are far too small to pull anything!") return -/mob/living/silicon/pai/update_canmove() +/mob/living/silicon/pai/update_canmove(delay_action_updates = 0) . = ..() density = 0 //this is reset every canmove update otherwise diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 8412aa322cb..1089e05862a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -337,7 +337,7 @@ /mob/living/silicon/robot/drone/remove_robot_verbs() src.verbs -= silicon_subsystems -/mob/living/silicon/robot/drone/update_canmove() +/mob/living/silicon/robot/drone/update_canmove(delay_action_updates = 0) . = ..() density = 0 //this is reset every canmove update otherwise diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index c6fc2919a16..3014941445b 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -228,13 +228,14 @@ weapon_lock = 0 weaponlock_time = 120 -/mob/living/silicon/robot/update_canmove() +/mob/living/silicon/robot/update_canmove(delay_action_updates = 0) if(paralysis || stunned || weakened || buckled || lockcharge) canmove = 0 else canmove = 1 update_transform() - update_action_buttons_icon() + if(!delay_action_updates) + update_action_buttons_icon() return canmove //Robots on fire diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 39d54ab1696..3cc10b39d42 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -161,7 +161,7 @@ diag_hud.add_hud_to(src) permanent_huds |= diag_hud -/mob/living/simple_animal/bot/update_canmove() +/mob/living/simple_animal/bot/update_canmove(delay_action_updates = 0) . = ..() if(!on) . = 0 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0030e893e68..db642914056 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -617,7 +617,7 @@ return verb -/mob/living/simple_animal/update_canmove() +/mob/living/simple_animal/update_canmove(delay_action_updates = 0) if(paralysis || stunned || weakened || stat || resting) drop_r_hand() drop_l_hand() @@ -627,7 +627,8 @@ else canmove = 1 update_transform() - update_action_buttons_icon() + if(!delay_action_updates) + update_action_buttons_icon() return canmove /mob/living/simple_animal/update_transform() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f673fa5ab0d..f86f7b10cf9 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1027,7 +1027,7 @@ var/list/slot_equipment_priority = list( \ return 1 //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. -/mob/proc/update_canmove() +/mob/proc/update_canmove(delay_action_updates = 0) var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH) var/buckle_lying = !(buckled && !buckled.buckle_lying) if(ko || resting || stunned) @@ -1052,7 +1052,8 @@ var/list/slot_equipment_priority = list( \ layer = initial(layer) update_transform() - update_action_buttons_icon() + if(!delay_action_updates) + update_action_buttons_icon() return canmove /mob/proc/fall(var/forced)