00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "gGame.h"
00030 #include "gCommandLineJumpStart.h"
00031 #include "gLogo.h"
00032
00033
00034
00035
00036
00037
00038
00039
00040 bool gCommandLineJumpStartAnalyzer::DoAnalyze( tCommandLineParser & parser )
00041 {
00042 if ( parser.GetOption( _raw, "--connect" ) )
00043 {
00044 _shouldConnect = true;
00045
00046 return true;
00047 }
00048 else
00049 {
00050 _shouldConnect = false;
00051 }
00052
00053 return false;
00054 }
00055
00056 void gCommandLineJumpStartAnalyzer::DoHelp( std::ostream & s )
00057 {
00058 s << "--connect <server>[:<port>] : connect directly to SERVER, skipping all menus. default PORT=4534\n";
00059 }
00060
00061 void gCommandLineJumpStartAnalyzer::Connect()
00062 {
00063 tString server;
00064 tString port;
00065
00066 ExtractConnectionInformation( _raw, server, port );
00067
00068 nServerInfoRedirect connectTo( server, port.ToInt() );
00069
00070 ConnectToServer( &connectTo );
00071 }
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00087
00088 void ExtractConnectionInformation( tString &raw, tString &servername, tString &port )
00089 {
00090
00091 if ( raw.StartsWith("armagetronad://") )
00092 {
00093 raw.RemoveSubStr(0, 15);
00094 }
00095
00096 int portStart = strcspn( raw, ":" );
00097
00098 if ( portStart != raw.Len() - 1 )
00099 {
00100 servername = raw.SubStr( 0, portStart );
00101 port = raw.SubStr( portStart + 1 );
00102 }
00103 else
00104 {
00105 servername = raw;
00106 port = "4534";
00107 }
00108 }
00109
00110 #ifdef MACOSX
00111 void AAURLHandlerConnect( nServerInfoBase * server )
00112 {
00113 gLogo::SetDisplayed(false);
00114 ConnectToServer( server );
00115 }
00116 #endif
00117
00118