ID:122898
 
BYOND Version:493
Operating System:Windows Vista Home Premium 64-bit
Web Browser:Firefox 10.0
Applies to:Dream Daemon
Status: Deferred

This issue may be low priority or very difficult to fix, and has been put on the back burner for the time being.
Descriptive Problem Summary:
When a client connects to a Dream Daemon (Reproduced with 493.1116 on Ubuntu, also occurs on a similarly versioned DreamDaemon running on Mikau's Windows server) hosted world with a large resource file, closing out of the splash screen calls client/Del() without calling client/New().

Numbered Steps to Reproduce Problem:
1.) Connect to a world hosted by Dream Daemon with a large resource file
2.) Close out of the resource loading splash screen before the resources are loaded.
3.) Observe output messages from client/Del() being called, but not client/New()

Code Snippet (if applicable) to Reproduce Problem:
I have packaged a test DMB and test resources at the following links: http://files.audeuro.com/test.zip and http://files.audeuro.com/test_rsc.zip, the resources for this are as follows: images from my server, some DLLs I had on my server, the entire contents of my website (no sensitive information) including redundant copies of the above, but tar'd up. This is an extreme case, but it allows for enough time to exit out of the loading screen and observe that the client/Del() message is present in the world log file when the corresponding client/New() is not.

Expected Results:
client/Del() to either A.) Not be called or B.) At least be called after client/New(), preferably the former.

Actual Results:
client/Del() is called with client/New() no where in sight.

Does the problem occur:
Every time? Or how often? When you exit out of the resource loading splash screen.
In other games? Frequently for some users in The Saloon
In other user accounts? Yes.
On other computers? Yes.
Tested and confirmed, failing to download game resources will trip up New()/Del().

This must be quite an old bug, I remember before the hub update many games with player counts were completely off. Most likely from using New() and Del() to keep track of player logins rather than a list of active players.
As a workaround, I suggest using an internal var in /client to track whether New() was called, which should help you handle Del() cases that go awry.
Although the workaround will suffice, is this behavior that's going to be changed or is it not all that likely?
Lummox JR changed status to 'Deferred'