function doLoaderServer() { createLoaderServer("Loader"); %conn = new GameConnection(LoaderServerConnection); RootGroup.add(LoaderServerConnection); %conn.LoaderServer = true; %conn.setConnectArgs("LoaderConnect","LoaderConnect","LoaderConnect"); %conn.setJoinPassword($Client::Password); %conn.connectLocal(); } function createLoaderServer(%serverType) { echo("*********Datablock Preload*********"); $missionSequence = 0; $LoaderServer = true; allowConnections(false); $ServerGroup = new SimGroup(ServerGroup); //This loads up all the datablocks, as normal onServerCreated(); $MissionRunning = true; } function destroyLoaderServer() { $Server::ServerType = ""; allowConnections(false); stopHeartbeat(); $missionRunning = false; if (isObject($ServerGroup)) $ServerGroup.delete(); $Server::GuidList = ""; } function ClientCmdDatablocksLoaded() { $skipdatablocks = true; $DataBlocksLoaded = true; LoaderServerConnection.delete(); echo("Datablocks loaded"); //goMainMenu(); } /// Skip datablock functionality function serverCmdMissionStartPhase1Ack_UseExistingDatablocks(%client, %seq) { //echo("<<<< client will load datablocks from a cache >>>>"); echo(" <<<< skipping datablock transmission >>>>"); // Make sure to ignore calls from a previous mission load if (%seq != $missionSequence || !$MissionRunning) return; if (%client.currentPhase != 0) return; %client.currentPhase = 1; // Start with the CRC %client.setMissionCRC( $missionCRC ); %client.onBeginDatablockExistingLoad($missionSequence); } function GameConnection::onBeginDatablockExistingLoad( %this, %missionSequence ) { // Make sure to ignore calls from a previous mission load if (%missionSequence != $missionSequence) return; if (%this.currentPhase != 1) return; %this.currentPhase = 1.5; commandToClient(%this, 'MissionStartPhase1_LoadExisting', $missionSequence, $Server::MissionFile); } function clientCmdMissionStartPhase1_LoadExisting(%seq, %missionName) { if ($skipdatablocks==true) { echo("<<<< Skipping Datablocks"); schedule(10, 0, "updateLoadExistingDatablockProgress", %seq, %missionName); } } function updateLoadExistingDatablockProgress(%seq, %missionName) { echo("<<<< Finished Skipping Datablocks >>>>"); clientCmdMissionStartPhase2(%seq,%missionName); }