Commit Graph

9 Commits

Author SHA1 Message Date
SkyratBot
f733bc21a8 [MIRROR] Mobility refactor and code cleanup - lacking appendages edition (#509)
* mobility refactor (#52929)

* Mobility refactor and code cleanup - lacking appendages edition

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-25 01:34:46 +02:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* 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

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
5e92c6f05b [MIRROR] Fixers for telekinesis and the defibrillator interactions (#149)
* 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

* Fixers for telekinesis and the defibrillator interactions

Co-authored-by: NightRed <nightred@gmail.com>
2020-07-31 14:06:48 +02: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