garrynewman/garrysmod — pull request #9 by samuelmaddock (2013-01-15 20:35:28+00:00)
Title: Reversed SENT Output Firing Order

The Source Engine uses a linked list for storing entity output order. New events replace the head pointer. This can be seen for `CBaseEntityOutput::AddEventAction` in `game\server\cbase.cpp`.

In the Garry's Mod SENT implementation, `ENT.StoreOutput` appends events to a table, and fires them in the same order. This leads to a reversed firing order which can break complicated entity I/O.

The fix I've implemented triggers the output in reverse. More information can be found in this thread: http://www.facepunch.com/showthread.php?t=1238499