96 lines
2.8 KiB
C#
96 lines
2.8 KiB
C#
|
//-----------------------------------------------------------------------------
|
||
|
// Torque Game Engine
|
||
|
//
|
||
|
// Copyright (c) 2001 GarageGames.Com
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
// Mission Loading
|
||
|
// Server download handshaking. This produces a number of onPhaseX
|
||
|
// calls so the game scripts can update the game's GUI.
|
||
|
//
|
||
|
// Loading Phases:
|
||
|
// Phase 1: Download Datablocks
|
||
|
// Phase 2: Download Ghost Objects
|
||
|
// Phase 3: Scene Lighting
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
// Phase 1
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
function clientCmdMissionStartPhase1(%seq, %missionName, %musicTrack)
|
||
|
{
|
||
|
// These need to come after the cls.
|
||
|
echo ("*** New Mission: " @ %missionName);
|
||
|
echo ("*** Phase 1: Download Datablocks & Targets");
|
||
|
onMissionDownloadPhase1(%missionName, %musicTrack);
|
||
|
commandToServer('MissionStartPhase1Ack', %seq);
|
||
|
}
|
||
|
|
||
|
function onDataBlockObjectReceived(%index, %total)
|
||
|
{
|
||
|
onPhase1Progress(%index / %total);
|
||
|
}
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
// Phase 2
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
function clientCmdMissionStartPhase2(%seq,%missionName)
|
||
|
{
|
||
|
onPhase1Complete();
|
||
|
echo ("*** Phase 2: Download Ghost Objects");
|
||
|
purgeResources();
|
||
|
onMissionDownloadPhase2(%missionName);
|
||
|
commandToServer('MissionStartPhase2Ack', %seq);
|
||
|
}
|
||
|
|
||
|
function onGhostAlwaysStarted(%ghostCount)
|
||
|
{
|
||
|
$ghostCount = %ghostCount;
|
||
|
$ghostsRecvd = 0;
|
||
|
}
|
||
|
|
||
|
function onGhostAlwaysObjectReceived()
|
||
|
{
|
||
|
$ghostsRecvd++;
|
||
|
onPhase2Progress($ghostsRecvd / $ghostCount);
|
||
|
}
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
// Phase 3
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
function clientCmdMissionStartPhase3(%seq,%missionName)
|
||
|
{
|
||
|
onPhase2Complete();
|
||
|
echo ("*** Phase 3: Mission Lighting");
|
||
|
$MSeq = %seq;
|
||
|
$Client::MissionFile = %missionName;
|
||
|
|
||
|
onMissionDownloadPhase3(%missionName);
|
||
|
onPhase3Complete();
|
||
|
// The is also the end of the mission load cycle.
|
||
|
onMissionDownloadComplete();
|
||
|
commandToServer('MissionStartPhase3Ack', $MSeq);
|
||
|
}
|
||
|
|
||
|
function updateLightingProgress()
|
||
|
{
|
||
|
onPhase3Progress($SceneLighting::lightingProgress);
|
||
|
if ($lightingMission)
|
||
|
$lightingProgressThread = schedule(1, 0, "updateLightingProgress");
|
||
|
}
|
||
|
|
||
|
function sceneLightingComplete()
|
||
|
{
|
||
|
echo("Mission lighting done");
|
||
|
onPhase3Complete();
|
||
|
|
||
|
// The is also the end of the mission load cycle.
|
||
|
onMissionDownloadComplete();
|
||
|
commandToServer('MissionStartPhase3Ack', $MSeq);
|
||
|
}
|
||
|
|