コード例 #1
0
ファイル: pfPatcher.cpp プロジェクト: JECervini/Plasma
void pfPatcherWorker::WhitelistFile(const plFileName& file, bool justDownloaded, hsStream* stream)
{
    // if this is a newly downloaded file, fire off a completion callback
    if (justDownloaded && fFileDownloaded)
        fFileDownloaded(file);

    // we want to whitelist our game code, so here we go...
    if (fGameCodeDiscovered) {
        plString ext = file.GetFileExt();
        if (ext.CompareI("pak") == 0 || ext.CompareI("sdl") == 0) {
            if (!stream) {
                stream = new hsUNIXStream;
                stream->Open(file, "rb");
            }

            // if something terrible goes wrong (eg bad encryption), we can exit sanely
            // callback eats stream
            if (!fGameCodeDiscovered(file, stream))
                EndPatch(kNetErrInternalError, "SecurePreloader failed.");
        }
    } else if (stream) {
        // no dad gum memory leaks, m'kay?
        stream->Close();
        delete stream;
    }
}
コード例 #2
0
ファイル: pfPatcher.cpp プロジェクト: JECervini/Plasma
 pfPatcherStream(pfPatcherWorker* parent, const plFileName& filename, const NetCliFileManifestEntry& entry)
     : fParent(parent), fFlags(entry.flags), fBytesWritten(0)
 {
     // ugh. eap removed the compressed flag in his fail manifests
     if (filename.GetFileExt().CompareI("gz") == 0) {
         fFlags |= pfPatcherWorker::kFlagZipped;
         parent->fTotalBytes += entry.zipSize;
     } else
         parent->fTotalBytes += entry.fileSize;
 }
コード例 #3
0
ファイル: plResPatcher.cpp プロジェクト: Asteral/Plasma
 plResDownloadStream(plOperationProgress* prog, const plFileName& reqFile)
     : fProgress(prog)
 { 
     fIsZipped = reqFile.GetFileExt().CompareI("gz") == 0;
 }