Skip to content

Atom locking: Chair and Buckling Rewrite.

Rob Nelson requested to merge pull/5378/locking into Bleeding-Edge

Created by: PJB3005

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 lock AM to src, this essentially buckles AM to src.
    • /atom/movable/proc/unlock_atom(var/atom/movable/AM): This proc will unlock AM from src.
    • /atom/movable/proc/update_dir(): This proc should be used to handle updating of dir dependant functions, this is used in atom locking to update the locked atoms dir.
      • 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, the forceMove() of dirs! Calls update_dir() and sets the dir, basic stuff.

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 PR is in preparation for MODULAR VEHICLES!!!`
  • Fixes #5300 (closed)
  • Fixes #4904 (closed) - vehicles all use forceMove() now.
  • There is a very real possibility that this PR fixes the wheelchair infinite loop.

Merge request reports