Skip to content

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 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 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.

Merge request reports