mirror of
https://github.com/exogen/t2-mapper.git
synced 2026-07-11 06:24:47 +00:00
Initial commit
This commit is contained in:
parent
2211ed7650
commit
ebb3dc9cdd
10121 changed files with 801 additions and 4 deletions
264
docs/base/@vl2/scripts.vl2/scripts/TrainingGui.cs
Normal file
264
docs/base/@vl2/scripts.vl2/scripts/TrainingGui.cs
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// TrainingGui.cs
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function LaunchTraining()
|
||||
{
|
||||
LaunchTabView.viewTab( "TRAINING", TrainingGui, 0 );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingGui::onWake( %this )
|
||||
{
|
||||
Canvas.pushDialog( LaunchToolbarDlg );
|
||||
|
||||
%this.soundHandle = 0;
|
||||
%this.briefEventCount = 0;
|
||||
%this.briefWAV = "";
|
||||
%ct = 1;
|
||||
%fobject = new FileObject();
|
||||
%search = "missions/*.mis";
|
||||
TrainingMissionList.clear();
|
||||
for ( %file = findFirstFile( %search ); %file !$= ""; %file = findNextFile( %search ) )
|
||||
{
|
||||
%name = fileBase(%file); // get the mission name
|
||||
|
||||
if ( !%fobject.openForRead( %file ) )
|
||||
continue;
|
||||
|
||||
%typeList = "None";
|
||||
|
||||
while( !%fobject.isEOF() )
|
||||
{
|
||||
%line = %fobject.readLine();
|
||||
if ( getSubStr( %line, 0, 18 ) $= "// MissionTypes = " )
|
||||
{
|
||||
%typeList = getSubStr( %line, 18, 1000 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( strstr( %typeList, "SinglePlayer" ) != -1 )
|
||||
{
|
||||
// Get the mission display name:
|
||||
%displayName = %name;
|
||||
while ( !%fobject.isEOF() )
|
||||
{
|
||||
%line = %fobject.readLine();
|
||||
if ( getSubStr( %line, 0, 16 ) $= "// PlanetName = " )
|
||||
{
|
||||
%displayName = getSubStr( %line, 16, 1000 );
|
||||
// Strip the date:
|
||||
%pos = strpos( %displayName, "," );
|
||||
if ( %pos != -1 )
|
||||
%displayName = getSubStr( %displayName, 0, %pos );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TrainingMissionList.addRow( %ct++, %displayName TAB %name );
|
||||
}
|
||||
|
||||
%fobject.close();
|
||||
}
|
||||
|
||||
TrainingMissionList.sort( 1 );
|
||||
TrainingMissionList.setSelectedRow( 0 );
|
||||
if ( $pref::TrainingDifficulty > 0 && $pref::TrainingDifficulty < 4 )
|
||||
TrainingDifficultyMenu.setSelected( $pref::TrainingDifficulty );
|
||||
else
|
||||
TrainingDifficultyMenu.setSelected( 1 );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingGui::onSleep( %this )
|
||||
{
|
||||
%this.stopBriefing();
|
||||
|
||||
Canvas.popDialog(LaunchToolbarDlg);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingGui::setKey( %this )
|
||||
{
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingGui::onClose( %this )
|
||||
{
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingDifficultyMenu::onAdd( %this )
|
||||
{
|
||||
%this.add( "Easy", 1 );
|
||||
%this.add( "Medium", 2 );
|
||||
%this.add( "Hard", 3 );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingDifficultyMenu::onSelect( %this, %id, %text )
|
||||
{
|
||||
$pref::TrainingDifficulty = %id;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingMissionList::onSelect( %this, %id, %text )
|
||||
{
|
||||
TrainingGui.stopBriefing();
|
||||
%fileName = "missions/" @ getField( %text, 1 ) @ ".mis";
|
||||
%file = new FileObject();
|
||||
%state = 0;
|
||||
if ( %file.openForRead( %fileName ) )
|
||||
{
|
||||
// Get the mission briefing text:
|
||||
while ( !%file.isEOF() )
|
||||
{
|
||||
%line = %file.readLine();
|
||||
if ( %state == 0 && %line $= "//--- MISSION BRIEFING BEGIN ---" )
|
||||
%state = 1;
|
||||
else if ( %state > 0 && %line $= "//--- MISSION BRIEFING END ---" )
|
||||
break;
|
||||
else if ( %state == 1 )
|
||||
{
|
||||
%briefText = %briefText @ getSubStr( %line, 2, 1000 );
|
||||
%state = 2;
|
||||
}
|
||||
else if ( %state == 2 )
|
||||
%briefText = %briefText NL getSubStr( %line, 2, 1000 );
|
||||
}
|
||||
|
||||
// Get the mission briefing WAV file:
|
||||
while ( !%file.isEOF() )
|
||||
{
|
||||
%line = %file.readLine();
|
||||
if ( getSubStr( %line, 0, 17 ) $= "// BriefingWAV = " )
|
||||
{
|
||||
%briefWAV = getSubStr( %line, 17, 1000 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Get the bitmap name:
|
||||
while ( !%file.isEOF() )
|
||||
{
|
||||
%line = %file.readLine();
|
||||
if ( getSubStr( %line, 0, 12 ) $= "// Bitmap = " )
|
||||
{
|
||||
%briefPic = getSubStr( %line, 12, 1000 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
%file.close();
|
||||
}
|
||||
else
|
||||
error( "Failed to open Single Player mission file " @ %fileName @ "!" );
|
||||
|
||||
if (!isDemo())
|
||||
%bmp = "gui/" @ %briefPic @ ".png";
|
||||
else
|
||||
%bmp = "gui/" @ %briefPic @ ".bm8";
|
||||
if ( isFile( "textures/" @ %bmp ) )
|
||||
{
|
||||
TrainingPic.setBitmap( %bmp );
|
||||
TrainingPicFrame.setVisible( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
TrainingPic.setBitmap( "" );
|
||||
TrainingPicFrame.setVisible( false );
|
||||
}
|
||||
|
||||
TrainingPlayBtn.setActive( %briefWAV !$= "" );
|
||||
TrainingBriefingText.setValue( %briefText );
|
||||
TrainingBriefingScroll.scrollToTop();
|
||||
TrainingGui.WAVBase = firstWord( %briefWAV );
|
||||
TrainingGui.WAVCount = restWords( %briefWAV );
|
||||
%file.delete();
|
||||
|
||||
//if ( TrainingPlayTgl.getValue() )
|
||||
// TrainingGui.startBriefing();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function TrainingPlayTgl::onAction( %this )
|
||||
{
|
||||
if ( %this.getValue() )
|
||||
{
|
||||
if ( TrainingMissionList.getSelectedId() != -1 )
|
||||
TrainingGui.startBriefing();
|
||||
}
|
||||
else
|
||||
TrainingGui.stopBriefing();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
function TrainingGui::toggleBriefing( %this )
|
||||
{
|
||||
if ( %this.soundHandle $= "" )
|
||||
%this.startBriefing();
|
||||
else
|
||||
%this.stopBriefing();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
function TrainingGui::startBriefing( %this )
|
||||
{
|
||||
%this.stopBriefing();
|
||||
if ( %this.WAVBase !$= "" )
|
||||
{
|
||||
%this.instance = %this.instance $= "" ? 0 : %this.instance;
|
||||
%this.playNextBriefWAV( %this.WAVBase, 0, %this.WAVCount, %this.instance );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
function TrainingGui::playNextBriefWAV( %this, %wavBase, %id, %count, %instance )
|
||||
{
|
||||
if ( %instance == %this.instance )
|
||||
{
|
||||
if ( %id < %count )
|
||||
{
|
||||
%wav = "voice/Training/Briefings/" @ %wavBase @ ".brief0" @ ( %id + 1 ) @ ".wav";
|
||||
%this.soundHandle = alxCreateSource( AudioGui, %wav );
|
||||
alxPlay( %this.soundHandle );
|
||||
|
||||
// Schedule the next WAV:
|
||||
%delay = alxGetWaveLen( %wav ) + 500;
|
||||
%this.schedule( %delay, playNextBriefWAV, %wavBase, %id + 1, %count, %instance );
|
||||
}
|
||||
else
|
||||
{
|
||||
// We're all done!
|
||||
%this.soundHandle = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
function TrainingGui::stopBriefing( %this )
|
||||
{
|
||||
if ( %this.soundHandle !$= "" )
|
||||
{
|
||||
alxStop( %this.soundHandle );
|
||||
%this.soundHandle = "";
|
||||
%this.instance++;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
function TrainingGui::startTraining( %this )
|
||||
{
|
||||
MessagePopup( "STARTING MISSION", "Initializing, please wait..." );
|
||||
Canvas.repaint();
|
||||
cancelServerQuery();
|
||||
%file = getField( TrainingMissionList.getValue(), 1 );
|
||||
$ServerName = "Single Player Training";
|
||||
$HostGameType = "SinglePlayer";
|
||||
CreateServer( %file, "SinglePlayer" );
|
||||
localConnect( "Lone Wolf", "Human Male", "swolf", "Male1" );
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue