Skip to content

Commit

Permalink
Revert "Add a generic "JoinServer" function (#693)"
Browse files Browse the repository at this point in the history
This reverts commit e4b3cc7.
  • Loading branch information
GeckoEidechse committed Jul 31, 2024
1 parent ad2e09b commit 4e34313
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 147 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
global function AddNorthstarConnectWithPasswordMenu
global function SetPasswordTargetServer

struct
{
var menu
var enterPasswordBox
var enterPasswordDummy
var connectButton
ServerInfo& targetServer
} file

void function AddNorthstarConnectWithPasswordMenu()
Expand Down Expand Up @@ -53,16 +51,11 @@ void function OnConnectWithPasswordMenuOpened()

}

void function SetPasswordTargetServer( ServerInfo server )
{
file.targetServer = server
}

void function ConnectWithPassword( var button )
{
if ( GetTopNonDialogMenu() == file.menu )
{
TriggerConnectToServerCallbacks()
thread JoinServer( file.targetServer, Hud_GetUTF8Text( Hud_GetChild( file.menu, "EnterPasswordBox" ) ) )
thread ThreadedAuthAndConnectToServer( Hud_GetUTF8Text( Hud_GetChild( file.menu, "EnterPasswordBox" ) ), true )
}
}
148 changes: 9 additions & 139 deletions Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ untyped
// Only way to get Hud_GetPos(sliderButton) working was to use untyped

global function AddNorthstarServerBrowserMenu

global function JoinServer
global function JoinServerByName
global function CancelJoinServer
global function ThreadedAuthAndConnectToServer

global function AddConnectToServerCallback
global function RemoveConnectToServerCallback
Expand Down Expand Up @@ -373,7 +370,7 @@ void function ToggleConnectingHUD( bool vis )

void function ConnectingButton_Activate( var button )
{
CancelJoinServer()
file.cancelConnection = true
}

////////////////////////////
Expand Down Expand Up @@ -1100,18 +1097,17 @@ void function OnServerSelected_Threaded( var button )
if ( server.requiresPassword )
{
OnCloseServerBrowserMenu()
SetPasswordTargetServer( file.lastSelectedServer )
AdvanceMenu( GetMenu( "ConnectWithPasswordMenu" ) )
}
else
{
TriggerConnectToServerCallbacks()
thread ThreadedAuthAndConnectToServer()
thread ThreadedAuthAndConnectToServer( "", downloadedMods != 0 )
}
}


void function ThreadedAuthAndConnectToServer( string password = "" )
void function ThreadedAuthAndConnectToServer( string password = "", bool modsChanged = false )
{
if ( NSIsAuthenticatingWithServer() )
return
Expand Down Expand Up @@ -1139,8 +1135,6 @@ void function ThreadedAuthAndConnectToServer( string password = "" )

if ( NSWasAuthSuccessful() )
{
bool modsChanged = false

// disable all RequiredOnClient mods that are not required by the server and are currently enabled
foreach ( string modName in NSGetModNames() )
{
Expand Down Expand Up @@ -1356,138 +1350,14 @@ void function RemoveConnectToServerCallback( void functionref( ServerInfo ) call

void function TriggerConnectToServerCallbacks( ServerInfo ornull targetServer = null )
{
if ( !targetServer )
targetServer = file.lastSelectedServer

expect ServerInfo( targetServer )

foreach( callback in file.connectCallbacks )
{
callback( targetServer )
}
}

//////////////////////////////////////
// Join server
//////////////////////////////////////

void function CancelJoinServer()
{
file.cancelConnection = true
}

bool function JoinServerByName( string serverName, string password = "" )
{
// Request list of online servers.
NSRequestServerList()
while ( NSIsRequestingServerList() )
ServerInfo server;
if (targetServer == null)
{
WaitFrame()
}

// Go through all servers that are currently online
foreach ( server in NSGetGameServers() )
{
// Join the server if it has the correct server name.
if ( server.name == serverName )
{
return JoinServer( server )
}
}

print( format( "Failed to connect to server %s: No such server", serverName ) )

return false
}

bool function JoinServer( ServerInfo server, string password = "" )
{
if ( NSIsAuthenticatingWithServer() )
return false

printt( format( "Connecting to server %s with id of %s", server.name, server.id ) )

TriggerConnectToServerCallbacks( server )
NSTryAuthWithServer( server.index, password )

ToggleConnectingHUD( true )

while ( NSIsAuthenticatingWithServer() && !file.cancelConnection )
WaitFrame()

ToggleConnectingHUD( false )

if ( file.cancelConnection )
{
file.cancelConnection = false
return false
targetServer = file.lastSelectedServer
}

file.cancelConnection = false

if ( NSWasAuthSuccessful() )
{
bool modsChanged = false

// disable all RequiredOnClient mods that are not required by the server and are currently enabled
foreach ( string modName in NSGetModNames() )
{
if ( NSIsModRequiredOnClient( modName ) && NSIsModEnabled( modName ) )
{
// find the mod name in the list of server required mods
bool found = false
foreach ( RequiredModInfo mod in server.requiredMods )
{
if ( mod.name == modName )
{
found = true
break
}
}
// if we didnt find the mod name, disable the mod
if ( !found )
{
modsChanged = true
NSSetModEnabled( modName, false )
}
}
}

// enable all RequiredOnClient mods that are required by the server and are currently disabled
foreach ( RequiredModInfo mod in server.requiredMods )
{
if ( NSIsModRequiredOnClient( mod.name ) && !NSIsModEnabled( mod.name ) )
{
modsChanged = true
NSSetModEnabled( mod.name, true )
}
}

// only actually reload if we need to since the uiscript reset on reload lags hard
if ( modsChanged )
ReloadMods()

NSConnectToAuthedServer()
return true
}
else
foreach( callback in file.connectCallbacks )
{
string reason = NSGetAuthFailReason()

DialogData dialogData
dialogData.header = "#ERROR"
dialogData.message = reason
dialogData.image = $"ui/menu/common/dialog_error"

#if PC_PROG
AddDialogButton( dialogData, "#DISMISS" )

AddDialogFooter( dialogData, "#A_BUTTON_SELECT" )
#endif // PC_PROG
AddDialogFooter( dialogData, "#B_BUTTON_DISMISS_RUI" )

OpenDialog( dialogData )
return false
callback( expect ServerInfo( targetServer ) )
}
return false
}

0 comments on commit 4e34313

Please sign in to comment.