Commit Graph

9 Commits

Author SHA1 Message Date
Rohesie 988319b3e3 mobility refactor (#52929) 2020-08-24 13:56:07 -07:00
Jared-Fogle 45c14f6330 Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
2020-08-20 09:11:28 +12:00
NightRed 9c19b8c6ce Fixers for telekinesis and the defibrillator interactions (#52571)
* tk and the defib

* fixed range check

* extra check that is not needed

* only show ear damage on threshold pass

* wrong branch am bad

* is living check
2020-07-30 22:48:37 -03:00
nightred baf9ef3e19 one more useless check removed 2020-03-06 09:49:50 -06:00
nightred 695fec66c2 remove some TK checks that are dead 2020-03-06 09:47:53 -06:00
nightred e2f03055a9 oh lets not make a loop that was bad 2020-03-05 12:25:38 -06:00
nightred 944fe34d80 telekinesis checks for held object 2020-03-05 12:22:55 -06:00
nightred 5f0cf09967 Off hand item drop fix 2020-03-05 08:56:06 -06:00
nightred 15452cac44 [READY] Two Handed Component (#49422)
About The Pull Request

For an item to be two handed just add this handy component.

All existing two handed items have been converted to use this component.
Why It's Good For The Game

It has components and signals, and now you can make items two handed so simply.

/obj/item/shockpaddles/ComponentInitialize()
	. = ..()
	AddComponent(/datum/component/two_handed)
2020-03-04 11:26:01 +13:00