D2GS clients are now indexed using a fixed-size array
Connecting clients will now use the first available slot
Disconnecting clients will now have their corresponding entity deleted
Shutting down server will now wait for client threads to end
Removed separate iteration method for broadcast packets -- I don't think this distinction is necessary
Refactored AtomicBoolean with volatile boolean
Debug logging has been significantly been improved to indicate clients / packet types / remote addresses
Disconnecting clients will now have a corresponding disconnect packet
Changing a players items will result in the change also appearing on other players' instances
Improved COF support
Fixed some crashing issues when loading certain COFs
Added COF info panel with layer info
Changed FrameDuration to delta -- I'm going to start veering away from duration
Renamed b1 to speed and changed to unsigned byte as short
Renamed b2 to unk1 and changed to unsigned byte as short
Added assertion that zero is really 0
Added support for hiding debug objects
Map cell values now have main and sub indexes unset
Added additional parameter that seems to block walk better on non-map floor tiles
Fixed an issue where specials were not being assigned new maps when recycled
Fixed issues drawing poppad zone areas
Added getPixOffset function in isometric camera to retrieve camera offset
Added partial support for changing acts (levels will come after waypoint are added)
Added a click lister to waypoint buttons and set their user object to referenced level
Changed from static loading screen to a dynamic one that is pushed over game screen and popped off to hide loads
Changed disposing strategy of GameLoadingScreen to always keep loading descriptor in memory
Client#clearAndSet(Screen) now disposes existing screens and clears before setting new one
Added MSI (master slave instancer) to create child D2GS processes
This is intended to act as a temp structure for testing until support for actual servers are added where an API can generate proper instances