mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-09-23 16:56:39 +00:00
chore: recognize when xenon fastfile use lzx compression
This commit is contained in:
@@ -12,15 +12,15 @@ namespace T6
|
||||
ZoneConstants() = default;
|
||||
|
||||
public:
|
||||
static constexpr const char* MAGIC_SIGNED_PC_TREYARCH = "TAff0100";
|
||||
static constexpr const char* MAGIC_SIGNED_XENON_TREYARCH = "TAffx100";
|
||||
static constexpr const char* MAGIC_SIGNED_PC_OAT = "ABff0100";
|
||||
static constexpr const char* MAGIC_SIGNED_TREYARCH = "TAff0100";
|
||||
static constexpr const char* MAGIC_SIGNED_LZX_TREYARCH = "TAffx100";
|
||||
static constexpr const char* MAGIC_SIGNED_OAT = "ABff0100";
|
||||
static constexpr const char* MAGIC_UNSIGNED = "TAffu100";
|
||||
static constexpr const char* MAGIC_UNSIGNED_SERVER = "TAsvu100";
|
||||
|
||||
static_assert(std::char_traits<char>::length(MAGIC_SIGNED_PC_TREYARCH) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_SIGNED_XENON_TREYARCH) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_SIGNED_PC_OAT) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_SIGNED_TREYARCH) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_SIGNED_LZX_TREYARCH) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_SIGNED_OAT) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_UNSIGNED) == sizeof(ZoneHeader::m_magic));
|
||||
static_assert(std::char_traits<char>::length(MAGIC_UNSIGNED_SERVER) == sizeof(ZoneHeader::m_magic));
|
||||
|
||||
|
@@ -1,8 +1,9 @@
|
||||
#include "AbstractSalsa20Processor.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <cstring>
|
||||
|
||||
AbstractSalsa20Processor::AbstractSalsa20Processor(const unsigned streamCount, const std::string& zoneName, const uint8_t* salsa20Key, const unsigned keySize)
|
||||
AbstractSalsa20Processor::AbstractSalsa20Processor(const unsigned streamCount, const std::string& zoneName, const uint8_t* salsa20Key, const size_t keySize)
|
||||
: m_stream_count(streamCount),
|
||||
m_stream_contexts(streamCount),
|
||||
m_block_hashes(BLOCK_HASHES_COUNT * streamCount * SHA1_HASH_SIZE),
|
||||
|
@@ -31,7 +31,7 @@ protected:
|
||||
static constexpr auto SHA1_HASH_SIZE = 20u;
|
||||
static constexpr auto SALSA20_IV_SIZE = 8u;
|
||||
|
||||
AbstractSalsa20Processor(unsigned streamCount, const std::string& zoneName, const uint8_t* salsa20Key, unsigned keySize);
|
||||
AbstractSalsa20Processor(unsigned streamCount, const std::string& zoneName, const uint8_t* salsa20Key, size_t keySize);
|
||||
void InitStreams(const std::string& zoneName, const uint8_t* salsa20Key, size_t keySize);
|
||||
|
||||
[[nodiscard]] uint8_t* GetHashBlock(unsigned streamNumber);
|
||||
|
12
src/ZoneCommon/Zone/XChunk/XChunkProcessorLzxDecompress.cpp
Normal file
12
src/ZoneCommon/Zone/XChunk/XChunkProcessorLzxDecompress.cpp
Normal file
@@ -0,0 +1,12 @@
|
||||
#include "XChunkProcessorLzxDecompress.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
size_t
|
||||
XChunkProcessorLzxDecompress::Process(unsigned streamNumber, const uint8_t* input, const size_t inputLength, uint8_t* output, const size_t outputBufferSize)
|
||||
{
|
||||
// TODO: Implement
|
||||
|
||||
memcpy(output, input, inputLength);
|
||||
return inputLength;
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
#include "IXChunkProcessor.h"
|
||||
|
||||
class XChunkProcessorLzxDecompress final : public IXChunkProcessor
|
||||
{
|
||||
public:
|
||||
size_t Process(unsigned streamNumber, const uint8_t* input, size_t inputLength, uint8_t* output, size_t outputBufferSize) override;
|
||||
};
|
Reference in New Issue
Block a user