Brent Moberly - 2005-11-28

Hello all-

2.05 is a small release meant primarily to fix issues that were introduced in release 2.04, namely issues with some player graphics scaling and an issue where the Output Window would be covered by the main window. 

I also reworked the connection dialog so that it is no longer modal.  Modal dialogs halt program execution until they are closed, so the old connection dialog would prevent the client from communicating with the server or even rendering when it was opened.  The new connection dialog will now let the client function normally while it is open.  I added some effects to the dialog -- when it is open the client will darken the main viewport and then lighten it again when the connection dialog is closed.

I also addressed some issues with the way that the client was logging into the host server.  Before the client was sending extra carriage returns after each login command, causing the server to resend the welcome message for each extra carriage return it receieved.  This resulted in a lot of extra spam at login and it also made it difficult to see the connection result messages.

I also reworked the connection sequence so as to make initial connection issues easier to resolve.  Older versions of the client would send an "[update]" command to the server to get the number of the latest client build. They would then send the user's credentials and the "init" command immediately afterwards.  This assumed that the user always entered the correct credentials.  The new version of the client will not send the user's credentials until the server answers its "[update]" query. It will then wait for the server to transmit the "*** Connected ***" message before it sends the "init" command.  Any text that is received after the client transmits the users credentials that is not equal to the "*** Connected ***" string will be colored red (as these will likely be connection issues). 

Under the old system, the user could not manually enter his or her credentials if he or she made a mistake from the credentials dialog because only the credentials dialog would send the init command.  What happened was that you could login manually, but the client would never initialize the graphics because it never received a response from the "init" command (which was sent long before right after an incorrect set of credentials). 

The new client will send the init command when it sees the "*** Connected ***" string after it has transmitted the user's credentials to the server.  Once the client sends a user's credentials, it enters into "credentials pending" mode and it will only send the "init" command after it receives the "*** Connected ****" string.  If you enter your credentials manually while the client is in this mode, then it will see the "*** Connected ****" string, send the init code to the server, and all should be well.

Finally, I added code to allow embedded bmverb links to contain multiple commands separated by semi-colons.

OK - let me know what you think-

Brent