112 lines
3.0 KiB
C#
Executable File
112 lines
3.0 KiB
C#
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// RecordingsGui is the main TSControl through which the a demo game recording
|
|
// is viewed.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
function recordingsDlg::onWake()
|
|
{
|
|
RecordingsDlgList.clear();
|
|
%i = 0;
|
|
%filespec = $currentMod @ "/recordings/*.rec";
|
|
echo(%filespec);
|
|
for(%file = findFirstFile(%filespec); %file !$= ""; %file = findNextFile(%filespec))
|
|
{
|
|
%fileName = fileBase(%file);
|
|
if (strStr(%file, "/CVS/") == -1)
|
|
{
|
|
RecordingsDlgList.addRow(%i++, %fileName);
|
|
}
|
|
}
|
|
RecordingsDlgList.sort(0);
|
|
RecordingsDlgList.setSelectedRow(0);
|
|
RecordingsDlgList.scrollVisible(0);
|
|
}
|
|
|
|
function StartSelectedDemo()
|
|
{
|
|
// first unit is filename
|
|
%sel = RecordingsDlgList.getSelectedId();
|
|
%rowText = RecordingsDlgList.getRowTextById(%sel);
|
|
|
|
%file = $currentMod @ "/recordings/" @ getField(%rowText, 0) @ ".rec";
|
|
|
|
new GameConnection(ServerConnection);
|
|
RootGroup.add(ServerConnection);
|
|
|
|
if(ServerConnection.playDemo(%file))
|
|
{
|
|
Canvas.setContent(PlayGui);
|
|
Canvas.popDialog(RecordingsDlg);
|
|
ServerConnection.prepDemoPlayback();
|
|
}
|
|
else
|
|
{
|
|
MessageBoxOK("Playback Failed", "Demo playback failed for file '" @ %file @ "'.");
|
|
if (isObject(ServerConnection)) {
|
|
ServerConnection.delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
function startDemoRecord()
|
|
{
|
|
// make sure that current recording stream is stopped
|
|
ServerConnection.stopRecording();
|
|
|
|
// make sure we aren't playing a demo
|
|
if(ServerConnection.isDemoPlaying())
|
|
return;
|
|
|
|
for(%i = 0; %i < 1000; %i++)
|
|
{
|
|
%num = %i;
|
|
if(%num < 10)
|
|
%num = "0" @ %num;
|
|
if(%num < 100)
|
|
%num = "0" @ %num;
|
|
|
|
%file = $currentMod @ "/recordings/demo" @ %num @ ".rec";
|
|
if(!isfile(%file))
|
|
break;
|
|
}
|
|
if(%i == 1000)
|
|
return;
|
|
|
|
$DemoFileName = %file;
|
|
|
|
ChatHud.AddLine( "\c4Recording to file [\c2" @ $DemoFileName @ "\cr].");
|
|
|
|
ServerConnection.prepDemoRecord();
|
|
ServerConnection.startRecording($DemoFileName);
|
|
|
|
// make sure start worked
|
|
if(!ServerConnection.isDemoRecording())
|
|
{
|
|
deleteFile($DemoFileName);
|
|
ChatHud.AddLine( "\c3 *** Failed to record to file [\c2" @ $DemoFileName @ "\cr].");
|
|
$DemoFileName = "";
|
|
}
|
|
}
|
|
|
|
function stopDemoRecord()
|
|
{
|
|
// make sure we are recording
|
|
if(ServerConnection.isDemoRecording())
|
|
{
|
|
ChatHud.AddLine( "\c4Recording file [\c2" @ $DemoFileName @ "\cr] finished.");
|
|
ServerConnection.stopRecording();
|
|
}
|
|
}
|
|
|
|
function demoPlaybackComplete()
|
|
{
|
|
disconnect();
|
|
Canvas.setContent("MainMenuGui");
|
|
Canvas.pushDialog(RecordingsDlg);
|
|
}
|