T2-BoL/scripts/LaunchLanGui.cs
Robert MacGregor 9a05e8d86c Initial commit.
2012-07-27 17:22:05 -04:00

388 lines
11 KiB
C#

//--------------------------------------------------------
function QueryServers( %searchCriteria )
{
GMJ_Browser.lastQuery = %searchCriteria;
LaunchGame( "JOIN" );
}
//--------------------------------------------------------
function QueryOnlineServers()
{
QueryServers("Master");
}
//--------------------------------------------------------
// Launch gui functions
//--------------------------------------------------------
function PlayOffline()
{
$FirstLaunch = true;
setNetPort(0);
$PlayingOnline = false;
Canvas.setContent(LaunchGui);
}
//--------------------------------------------------------
function OnlineLogIn()
{
$FirstLaunch = true;
setNetPort(0);
$PlayingOnline = true;
FilterEditGameType.clear();
FilterEditMissionType.clear();
queryMasterGameTypes();
// Start the Email checking...
EmailGui.checkSchedule = schedule( 5000, 0, CheckEmail, true );
// Load the player database...
%guid = getField( WONGetAuthInfo(), 3 );
if ( %guid > 0 )
loadPlayerDatabase( "prefs/pyrdb" @ %guid );
Canvas.setContent(LaunchGui);
}
//--------------------------------------------------------
function LaunchToolbarMenu::onSelect(%this, %id, %text)
{
switch(%id)
{
case 0:
LaunchGame();
case 1: // Start Training Mission
LaunchTraining();
case 2:
LaunchNews();
case 3:
LaunchForums();
case 4:
LaunchEmail();
case 5: // Join Chat Room
Canvas.pushDialog(JoinChatDlg);
case 6:
LaunchBrowser();
case 7: // Options
Canvas.pushDialog(OptionsDlg);
case 8: // Play Recording
Canvas.pushDialog(RecordingsDlg);
case 9: // Quit
if(isObject($IRCClient.tcp))
IRCClient::quit();
LaunchTabView.closeAllTabs();
if (!isDemo())
quit();
else
Canvas.setContent(DemoEndGui);
//case 10: // Log Off
// LaunchTabView.closeAllTabs();
// PlayOffline();
//case 11: // Log On
// LaunchTabView.closeAllTabs();
// OnlineLogIn();
case 12:
LaunchCredits();
case 13:
Canvas.setContent(RPGBrowserGui);
}
}
//--------------------------------------------------------
function LaunchToolbarDlg::onWake(%this)
{
// Play the shell hum:
if ( $HudHandle[shellScreen] $= "" )
$HudHandle[shellScreen] = alxPlay( ShellScreenHumSound, 0, 0, 0 );
LaunchToolbarMenu.clear();
if ( isDemo() )
{
LaunchToolbarMenu.add( 1, "CAMPAIGN" );
LaunchToolbarMenu.add( 0, "GAME" );
LaunchToolbarMenu.add( 2, "NEWS" );
LaunchToolbarMenu.add( 13, "MOD BROWSER" );
}
else if ( $PlayingOnline )
{
LaunchToolbarMenu.add( 0, "GAME" );
LaunchToolbarMenu.add( 4, "EMAIL" );
LaunchToolbarMenu.add( 5, "CHAT" );
LaunchToolbarMenu.add( 6, "BROWSER" );
LaunchToolbarMenu.add( 13, "MOD BROWSER" );
}
else
{
LaunchToolbarMenu.add( 1, "CAMPAIGN" );
LaunchToolbarMenu.add( 0, "LAN GAME" );
LaunchToolbarMenu.add( 13, "MOD BROWSER" );
}
LaunchToolbarMenu.addSeparator();
LaunchToolbarMenu.add( 7, "SETTINGS" );
if ( !isDemo() )
LaunchToolbarMenu.add( 8, "RECORDINGS" );
LaunchToolbarMenu.add( 12, "CREDITS" );
LaunchToolbarMenu.addSeparator();
LaunchToolbarMenu.add( 9, "QUIT" );
%on = false;
for ( %tab = 0; %tab < LaunchTabView.tabCount(); %tab++ )
{
if ( LaunchTabView.isTabActive( %tab ) )
{
%on = true;
break;
}
}
LaunchToolbarCloseButton.setVisible( %on );
}
//----------------------------------------------------------------------------
// Launch Tab Group functions:
//----------------------------------------------------------------------------
function OpenLaunchTabs( %gotoWarriorSetup )
{
if ( LaunchTabView.tabCount() > 0 || !$FirstLaunch )
return;
$FirstLaunch = "";
// Set up all of the launch bar tabs:
if ( isDemo() )
{
LaunchTabView.addLaunchTab( "CAMPAIGN", TrainingGui );
LaunchTabView.addLaunchTab( "GAME", GameGui );
LaunchTabView.addLaunchTab( "NEWS", NewsGui );
LaunchTabView.addLaunchTab( "FORUMS", "", true );
LaunchTabView.addLaunchTab( "EMAIL", "", true );
LaunchTabView.addLaunchTab( "CHAT", "", true );
LaunchTabView.addLaunchTab( "BROWSER", "", true );
%launchGui = NewsGui;
}
else if ( $PlayingOnline )
{
LaunchTabView.addLaunchTab( "GAME", GameGui );
LaunchTabView.addLaunchTab( "EMAIL", EmailGui );
LaunchTabView.addLaunchTab( "CHAT", ChatGui );
LaunchTabView.addLaunchTab( "BROWSER", TribeandWarriorBrowserGui);
switch$ ( $pref::Shell::LaunchGui )
{
case "News": %launchGui = NewsGui;
case "Forums": %launchGui = ForumsGui;
case "Email": %launchGui = EmailGui;
case "Chat": %launchGui = ChatGui;
case "Browser": %launchGui = TribeandWarriorBrowserGui;
case "Mod Browser": %launchGui = RPGBrowserGui;
default: %launchGui = GameGui;
}
}
else
{
LaunchTabView.addLaunchTab( "CAMPAIGN", TrainingGui );
LaunchTabView.addLaunchTab( "LAN GAME", GameGui );
%launchGui = TrainingGui;
}
if ( %gotoWarriorSetup )
LaunchGame( "WARRIOR" );
else
LaunchTabView.viewTab( "", %launchGui, 0 );
if ( $IssueVoodooWarning && !$pref::SawVoodooWarning )
{
$pref::SawVoodooWarning = 1;
schedule( 0, 0, MessageBoxOK, "WARNING", "A Voodoo card has been detected. If you experience any graphical oddities, you should try the WickedGl drivers available at www.wicked3d.com" );
}
}
//--------------------------------------------------------
function LaunchTabView::addLaunchTab( %this, %text, %gui, %makeInactive )
{
%tabCount = %this.tabCount();
%this.gui[%tabCount] = %gui;
%this.key[%tabCount] = 0;
%this.addTab( %tabCount, %text );
if ( %makeInactive )
%this.setTabActive( %tabCount, false );
}
//--------------------------------------------------------
function LaunchTabView::onSelect( %this, %id, %text )
{
// Ignore the ID - it can't be trusted.
%tab = %this.getSelectedTab();
if ( isObject( %this.gui[%tab] ) )
{
Canvas.setContent( %this.gui[%tab] );
%this.gui[%tab].setKey( %this.key[%tab] );
%this.lastTab = %tab;
}
}
//--------------------------------------------------------
function LaunchTabView::viewLastTab( %this )
{
if ( %this.tabCount() == 0 || %this.lastTab $= "" )
return;
%this.setSelectedByIndex( %this.lastTab );
}
//--------------------------------------------------------
function LaunchTabView::viewTab( %this, %text, %gui, %key )
{
%tabCount = %this.tabCount();
for ( %tab = 0; %tab < %tabCount; %tab++ )
if ( %this.gui[%tab] $= %gui && %this.key[%tab] $= %key )
break;
if ( %tab == %tabCount )
{
// Add a new tab:
%this.gui[%tab] = %gui;
%this.key[%tab] = %key;
// WARNING! This id may not be unique and therefore should
// not be relied on! Use index instead!
%this.addTab( %tab, %text );
}
if ( %this.getSelectedTab() != %tab )
%this.setSelectedByIndex( %tab );
}
//--------------------------------------------------------
function LaunchTabView::closeCurrentTab( %this )
{
%tab = %this.getSelectedTab();
%this.closeTab( %this.gui[%tab], %this.key[%tab] );
}
//--------------------------------------------------------
function LaunchTabView::closeTab( %this, %gui, %key )
{
%tabCount = %this.tabCount();
%activeCount = 0;
for ( %i = 0; %i < %tabCount; %i++ )
{
if ( %this.gui[%i] $= %gui && %this.key[%i] $= %key )
%tab = %i;
else if ( %this.isTabActive( %i ) )
%activeCount++;
}
if ( %tab == %tabCount )
return;
for( %i = %tab; %i < %tabCount; %i++ )
{
%this.gui[%i] = %this.gui[%i+1];
%this.key[%i] = %this.key[%i+1];
}
%this.removeTabByIndex( %tab );
%gui.onClose( %key );
if ( %activeCount == 0 )
{
%this.lastTab = "";
Canvas.setContent( LaunchGui );
}
}
//--------------------------------------------------------
function LaunchTabView::closeAllTabs( %this )
{
%tabCount = %this.tabCount();
for ( %i = 0; %i < %tabCount; %i++ )
{
if ( isObject( %this.gui[%i] ) )
%this.gui[%i].onClose( %this.key[%i] );
%this.gui[%i] = "";
%this.key[%i] = "";
}
%this.clear();
}
//----------------------------------------------------------------------------
// LaunchGui functions:
//----------------------------------------------------------------------------
function LaunchGui::onAdd(%this)
{
%this.getWarrior = true;
}
//----------------------------------------------------------------------------
function LaunchGui::onWake(%this)
{
$enableDirectInput = "0";
deactivateDirectInput();
Canvas.pushDialog(LaunchToolbarDlg);
if ( !$FirstLaunch )
LaunchTabView.viewLastTab();
if ( !isDemo() )
checkNamesAndAliases();
else
OpenLaunchTabs();
}
//----------------------------------------------------------------------------
function LaunchGui::onSleep(%this)
{
//alxStop($HudHandle['shellScreen']);
Canvas.popDialog( LaunchToolbarDlg );
}
//----------------------------------------------------------------------------
function checkNamesAndAliases()
{
%gotoWarriorSetup = false;
if ( $PlayingOnline )
{
// When first launching, make sure we have a valid warrior:
if ( LaunchGui.getWarrior )
{
%cert = WONGetAuthInfo();
if ( %cert !$= "" )
{
LaunchGui.getWarrior = "";
if ( %cert $= "" )
%warrior = $CreateAccountWarriorName;
else
%warrior = getField( %cert, 0 );
%warriorIdx = -1;
for ( %i = 0; %i < $pref::Player::count; %i++ )
{
if ( %warrior $= getField( $pref::Player[%i], 0 ) )
{
%warriorIdx = %i;
break;
}
}
if ( %warriorIdx == -1 )
{
// Create new warrior:
$pref::Player[$pref::Player::Count] = %warrior @ "\tHuman Male\tbeagle\tMale1";
$pref::Player::Current = $pref::Player::Count;
$pref::Player::Count++;
%gotoWarriorSetup = true;
}
}
else
MessageBoxOK( "WARNING", "Failed to get account information. You may need to quit the game and log in again." );
}
}
else if ( $pref::Player::Count == 0 )
{
%gotoWarriorSetup = true;
}
OpenLaunchTabs( %gotoWarriorSetup );
}