PR Stack - Movement Optimizations - #12753
Conversation
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
0e084f0 to
a4b17e5
Compare
|
Conflicts have been resolved. A maintainer will review the pull request shortly. |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
a4b17e5 to
408188a
Compare
|
Conflicts have been resolved. A maintainer will review the pull request shortly. |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
408188a to
d25b517
Compare
|
Conflicts have been resolved. A maintainer will review the pull request shortly. |
|
Needs a second round of local testing before being put on TM |
Test merge deployment history:Test Merge Deployed @ 08/01/2026 13:54:08 +00:00:Server InstanceRevisionTest Merge Removed @ 08/01/2026 14:34:34 +00:00:Server InstanceCM13 Live Test Merge Deployed @ 08/05/2026 04:24:14 +00:00:Server InstanceRevisionTest Merge Updated @ 08/05/2026 06:43:39 +00:00:Server InstanceCM13 Live RevisionOrigin: 1207932 Test Merge Updated @ 08/05/2026 08:44:53 +00:00:Server InstanceCM13 Live RevisionOrigin: ee396c5 Test Merge Updated @ 08/05/2026 09:47:11 +00:00:Server InstanceRevisionTest Merge Updated @ 08/06/2026 03:20:30 +00:00:Server InstanceCM13 Live RevisionOrigin: 8844d79 Test Merge Updated @ 08/06/2026 07:52:24 +00:00:Server InstanceRevisionTest Merge Updated @ 08/06/2026 23:56:47 +00:00:Server InstanceCM13 Live RevisionOrigin: 8512659 Test Merge Updated @ 08/07/2026 02:58:08 +00:00:Server InstanceCM13 Live RevisionOrigin: 059f644 Test Merge Updated @ 08/07/2026 03:59:03 +00:00:Server InstanceCM13 Live RevisionOrigin: 0403d80 Test Merge Updated @ 08/07/2026 04:29:51 +00:00:Server InstanceCM13 Live RevisionOrigin: 87c49b1 Test Merge Updated @ 08/07/2026 05:00:38 +00:00:Server InstanceCM13 Live RevisionOrigin: 5f61c57 Test Merge Updated @ 08/07/2026 18:04:27 +00:00:Server InstanceCM13 Live RevisionOrigin: 878ffb6 Test Merge Updated @ 08/07/2026 18:35:17 +00:00:Server InstanceCM13 Live RevisionOrigin: 9ab6eea Test Merge Updated @ 08/08/2026 02:07:37 +00:00:Server InstanceCM13 Live RevisionOrigin: 17f0618 Test Merge Updated @ 08/08/2026 03:38:48 +00:00:Server InstanceRevisionTest Merge Updated @ 08/08/2026 04:08:36 +00:00:Server InstanceRevisionTest Merge Updated @ 08/08/2026 04:30:45 +00:00:Server InstanceRevisionTest Merge Updated @ 08/08/2026 09:40:53 +00:00:Server InstanceRevisionTest Merge Updated @ 08/08/2026 18:43:44 +00:00:Server InstanceRevisionTest Merge Updated @ 08/08/2026 22:45:41 +00:00:Server InstanceRevisionTest Merge Updated @ 08/09/2026 02:17:16 +00:00:Server InstanceCM13 Live RevisionOrigin: e33d2e4 Test Merge Updated @ 08/09/2026 03:48:23 +00:00:Server InstanceCM13 Live RevisionOrigin: 4315ddf Test Merge Updated @ 08/09/2026 05:17:00 +00:00:Server InstanceRevisionTest Merge Updated @ 08/09/2026 05:49:32 +00:00:Server InstanceCM13 Live RevisionOrigin: 5681f98 Test Merge Updated @ 08/09/2026 06:20:19 +00:00:Server InstanceCM13 Live RevisionOrigin: 0ed4525 Test Merge Updated @ 08/09/2026 15:22:47 +00:00:Server InstanceCM13 Live RevisionOrigin: 3bf09bc Test Merge Updated @ 08/09/2026 15:53:35 +00:00:Server InstanceCM13 Live RevisionOrigin: ccfdf68 Test Merge Updated @ 08/09/2026 16:24:23 +00:00:Server InstanceCM13 Live RevisionOrigin: 6c4c2de Test Merge Updated @ 08/09/2026 16:55:12 +00:00:Server InstanceCM13 Live RevisionOrigin: fa93b12 Test Merge Updated @ 08/09/2026 17:26:00 +00:00:Server InstanceCM13 Live RevisionOrigin: ecbb41f Test Merge Updated @ 08/10/2026 02:28:24 +00:00:Server InstanceCM13 Live RevisionOrigin: 61af848 Test Merge Updated @ 08/10/2026 05:29:42 +00:00:Server InstanceCM13 Live RevisionOrigin: 82b934d Test Merge Updated @ 08/10/2026 06:00:30 +00:00:Server InstanceCM13 Live RevisionOrigin: 2bc00b4 Test Merge Updated @ 08/10/2026 14:55:49 +00:00:Server InstanceRevisionTest Merge Updated @ 08/10/2026 16:20:29 +00:00:Server InstanceRevisionTest Merge Updated @ 08/10/2026 17:14:32 +00:00:Server InstanceRevisionTest Merge Updated @ 08/10/2026 19:09:43 +00:00:Server InstanceRevisionTest Merge Updated @ 08/10/2026 19:43:32 +00:00:Server InstanceRevisionTest Merge Updated @ 08/10/2026 20:39:02 +00:00:Server InstanceRevisionTest Merge Updated @ 08/11/2026 00:35:06 +00:00:Server InstanceRevisionTest Merge Updated @ 08/11/2026 02:06:09 +00:00:Server InstanceCM13 Live RevisionOrigin: 74c04bd Test Merge Updated @ 08/11/2026 07:38:02 +00:00:Server InstanceCM13 Live RevisionOrigin: 5fdd4e6 Test Merge Updated @ 08/11/2026 08:32:39 +00:00:Server InstanceRevisionTest Merge Updated @ 08/11/2026 13:29:19 +00:00:Server InstanceRevisionTest Merge Updated @ 08/11/2026 21:11:37 +00:00:Server InstanceRevisionTest Merge Updated @ 08/12/2026 02:13:27 +00:00:Server InstanceCM13 Live RevisionOrigin: da283ac Test Merge Updated @ 08/12/2026 03:14:23 +00:00:Server InstanceCM13 Live RevisionOrigin: 2de69ec Test Merge Updated @ 08/13/2026 01:28:49 +00:00:Server InstanceRevisionTest Merge Updated @ 08/13/2026 02:20:09 +00:00:Server InstanceCM13 Live RevisionOrigin: 1642f4c Test Merge Updated @ 08/13/2026 03:51:09 +00:00:Server InstanceCM13 Live RevisionOrigin: 2281510 Test Merge Updated @ 08/13/2026 04:49:04 +00:00:Server InstanceRevisionTest Merge Removed @ 08/13/2026 04:50:40 +00:00:Server InstanceCM13 Live |
|
This prevents the ARC from moving right now, not merge viable until this is fixed |
|
Should be fixed now, mishap with the way the return value was handled |

About the pull request
8 independent changes to optimize/maintain core movement code that has been untouched since forever.
None of these is a real gamechanger, but together they should improve performance slightly. We have a lot of players and we do a lot of movement, you see. And not only the players move. It adds up, really fast.
Contents
Chapter 1: Refactor nutrition
Moves nutrition around to kill an unncessary
/mob/living/carbon/Movethat did nothing else.Chapter 2: Remove COMSIG_ATOM_EXITED
Swaps that signal for a more traditional COMSIG_MOVABLE_MOVED in minimap.
This allows to remove the /atom/Exited handler, which is executed for every move of everything, all the time.
At a glance this should net 0.5% perf on movement. Could not properly test it though...
Chapter 3: Remove COMSIG_MOVABLE_ENTERED_OBJ
Same story as above. This one only fires on /obj moves so it's less of a deal.
Chapter 4: Modernize /turf/Enter
This is the fun one! It's mostly maintenance save for a few removed typechecks.
Renames and shuffles all the relevant variables in collision checks for movement to be on par with standard code.
Also clears a very weird misconception (forget -> oldloc) and uses BYOND provided oldloc, instead of infering it from object.
Chapter 5: Nukes nuke disk code
We simply don't use that.
Chapter 6: /turf/Entered optimization
Just removes an unneeded typecheck. That's it.
Chapter 7: Signalify handle_rotation
As for Chapter 2, that was firing in every /atom/movable/Move when it was only needed in a couple cases.
I implemented it by COMSIG_ATOM_DIR_CHANGE in chairs, but as far as i can see, everything already has handlers for it already? It's possible i missed some cases though.
Chapter 8: kill /mob/living/carbon/human/Crossed
This is probably the biggest offender for mob movement, Crossed() is fired against every content of everything you move to.
As it turns out, MuleBots don't work anyway so they don't need to run over anything.
As for vehicles, RunOver() was a placeholder proc that didn't do anything.
Gone.
Testing Photographs and Procedure
Changes were tested individually in a basic fashion, but changes in move code reach out everywhere, so this will need live testing.
Changelog
🆑
del: MULEbots cannot run people over anymore. They still can't really move either way.
/:cl: