public async Task <FileStreamResult> PostDownloadScene(GamePlatform platform, GameVersion version, [FromBody] Scene sceneData) { if (platform != GamePlatform.PlatformType_PC || version != GameVersion.GameVersion_THUG) { throw new System.NotImplementedException(); } IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version); var writer = new SceneSerializer(checksumResolver); var ms = await writer.WriteScene(sceneData); return(new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = "scene.mdl.xbx" }); }
public async Task <FileStreamResult> PostCreateCAS(GamePlatform platform, GameVersion version, string friendlyName, [FromBody] QScript.Save.CAS.CASData input) { SaveFileTypeRecord record = await scriptKeyRepository.GetFileInfo(friendlyName, version, platform); if (record == null) { throw new NotImplementedException(); } //GetFileInfo(string name, GameVersion version, GamePlatform platform); IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version); QScript.Save.CAS.ISerializationProvider serializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(checksumResolver, (int)record.fileVersion, record.fixedFileSize); var ms = await serializer.SerializeCAS(input); ms.Seek(0, SeekOrigin.Begin); return(new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = "save." + friendlyName }); }
public async Task <List <TokenEntry> > PostDownloadCAS(GamePlatform platform, GameVersion version) { IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version); var formData = HttpContext.Request.Form; var files = HttpContext.Request.Form.Files; using (MemoryStream ms = new MemoryStream()) { var file = files.First(); using (BinaryReader bs = new BinaryReader(ms)) { var reader = new TokenBufferReader(checksumResolver, bs); await file.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); var results = await reader.ReadBuffer(); return(results); } } }
public async Task <QScript.Save.CAS.CASData> PostDownloadCAS(GamePlatform platform, GameVersion version) { IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version); QScript.Save.CAS.ISerializationProvider deserializer = new QScript.Save.CAS.Games.THPS4Common_SerializationProvider(checksumResolver, 1, 1); var formData = HttpContext.Request.Form; var files = HttpContext.Request.Form.Files; using (MemoryStream ms = new MemoryStream()) { var file = files.First(); using (BinaryReader bs = new BinaryReader(ms)) { await file.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); var results = await deserializer.DeserializeCAS(bs); return(results); } } }
public async Task <Scene> PostUploadScene(GamePlatform platform, GameVersion version) { if (platform != GamePlatform.PlatformType_PC || version != GameVersion.GameVersion_THUG) { throw new System.NotImplementedException(); } IChecksumResolver checksumResolver = new THPS.API.Utils.ChecksumResolver(scriptKeyRepository, platform, version); var files = HttpContext.Request.Form.Files; using (MemoryStream ms = new MemoryStream()) { var file = files.First(); using (BinaryReader bs = new BinaryReader(ms)) { var reader = new SceneSerializer(checksumResolver); await file.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); var results = await reader.ReadBuffer(bs); return(results); } } }