Atom locking
What is this?
- I moved buckling to all movable atoms on both the buckled-to side and the being-buckled side!
- Cleans up stool and subtype code.
More in depth list of changes:
-
/obj/structure/stool
axed completely, all stools are now the weapon type as frankly, stools had no fucking reason to be a structure with how little they did, and they fit better as an item because they can be picked up! -
General clean up of code used by chairs and the alike.
- Chairs, beds... moved to a seperate .dmi
-
Atom Locking: Lock atom A to atom B and atom A's position and dir will be kept the same as atom B's! (as much as possible).
-
/atom/movable/proc/lock_atom(var/atom/movable/AM)
: This proc will lockAM
tosrc
, this essentially bucklesAM
tosrc
. -
/atom/movable/proc/unlock_atom(var/atom/movable/AM)
: This proc will unlockAM
fromsrc
. -
/atom/movable/proc/update_dir()
: This proc should be used to handle updating ofdir
dependant functions, this is used in atom locking to update the locked atomsdir
.- This proc would however not be very useful as doing
dir = value
doesn't call it, as such, I introduced: -
/atom/movable/proc/change_dir(var/newdir)
: Essentially, theforceMove()
of dirs! Callsupdate_dir()
and sets thedir
, basic stuff.
- This proc would however not be very useful as doing
-
Notes:
DNM, mostly works but there are some issues to fix:
-
Piano stool sprite is that of the normal stool. -
Adminbus HUD doesn't get removed correctly.
-
EDIT: All issues that I could see fixed.
-
I need to check some strings to see if there's any fuckups from using find/replace for a lot of this are left. -
@DeityLink didn't want me to touch adminbus code so the adminbus passenger code doesn't use atom locking.
-
This MR is in preparation for MODULAR VEHICLES!!!
-
Fixes #5300
-
Fixes #4904 - vehicles all use
forceMove()
now. -
There is a very real possibility that this MR fixes the wheelchair infinite loop.