//----------------------------------------------------------------------------- // 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); }