diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt index 1170c0e..5eb9432 100644 --- a/framework/CMakeLists.txt +++ b/framework/CMakeLists.txt @@ -39,7 +39,7 @@ add_executable (xna WIN32 "content/manager.cpp" "content/reader.cpp" "csharp/binary.cpp" -"content/decstream.cpp" "content/lzx/decoder.cpp" "content/lzx/decoderstream.cpp" "content/typereadermanager.cpp" "csharp/object.cpp" "csharp/type.cpp" "platform/init-dx.cpp" "game/servicecontainer.cpp" "common/color.cpp") + "content/lzx/decoder.cpp" "content/lzx/decoderstream.cpp" "content/typereadermanager.cpp" "csharp/object.cpp" "csharp/type.cpp" "platform/init-dx.cpp" "game/servicecontainer.cpp" "common/color.cpp") if (CMAKE_VERSION VERSION_GREATER 3.12) set_property(TARGET xna PROPERTY CXX_STANDARD 20) diff --git a/framework/content/decstream.cpp b/framework/content/decstream.cpp deleted file mode 100644 index 7d96ba8..0000000 --- a/framework/content/decstream.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "decstream.hpp" -#include - -namespace xna { - void DecompressStream::Decompress() - { - String filename = "C:\\Users\\Danilo Borges\\Documents\\xna\\projeto-final\\Game9\\bin\\Debug\\netcoreapp3.1\\Content\\Sprites\\MonsterA\\idle.xnb"; - - - } - - Int DecompressStream::Length() - { - return Int(); - } - - Long DecompressStream::Position() - { - return Long(); - } - - void DecompressStream::Close() - { - } - - Long DecompressStream::Seek(Long offset, SeekOrigin const& origin, xna_error_ptr_arg) - { - return Long(); - } - - Int DecompressStream::Read(Byte* buffer, Int bufferLength, Int offset, Int count, xna_error_ptr_arg) - { - return Int(); - } - - Int DecompressStream::Read(std::vector& buffer, Int offset, Int count, xna_error_ptr_arg) - { - return Int(); - } - - Int DecompressStream::ReadByte(xna_error_ptr_arg) - { - return Int(); - } - - void DecompressStream::Write(Byte const* buffer, Int bufferLength, Int offset, Int count, xna_error_ptr_arg) - { - } - - void DecompressStream::Write(std::vector const& buffer, Int offset, Int count, xna_error_ptr_arg) - { - } - - void DecompressStream::WriteByte(Byte value, xna_error_ptr_arg) - { - } - - bool DecompressStream::DecompressNextBuffer() - { - if (decompressedTodo <= 0) - return false; - - do { - if (compressedPosition >= compressedSize) - ReadNextBufferFromDisk(); - - auto sourceSize = compressedSize - compressedPosition; - auto outputSize = 65536; - - //TODO - - if (outputSize == 0 && sourceSize == 0) - return false; - - compressedPosition += sourceSize; - decompressedTodo -= outputSize; - decompressedSize = outputSize; - decompressedPosition = 0; - - } while (decompressedSize == 0); - - return true; - } - - void DecompressStream::ReadNextBufferFromDisk() - { - if (compressedTodo <= 0) - return; - - ReadBufferFromDisk(compressedBuffer, compressedTodo, compressedSize); - compressedPosition = 0; - } - - void DecompressStream::ReadBufferFromDisk(std::vector& buffer, Int& bufferTodo, Int& bufferSize) - { - Int num1 = 65536; - if (num1 > bufferTodo) - num1 = bufferTodo; - - Int num2 = 0; - for (int offset = 0; offset < num1; offset += num2) { - num2 = baseStream->Read(buffer, offset, num1 - offset); - - if (num2 == 0) return; - } - - bufferTodo -= num1; - bufferSize = num1; - } - -} \ No newline at end of file diff --git a/framework/content/decstream.hpp b/framework/content/decstream.hpp deleted file mode 100644 index 20219ec..0000000 --- a/framework/content/decstream.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef XNA_CONTENT_DECOMPRESS_STREAM_HPP -#define XNA_CONTENT_DECOMPRESS_STREAM_HPP - -#include "../default.hpp" -#include "../csharp/stream.hpp" -#include - -namespace xna { - class DecompressStream : public Stream { - public: - DecompressStream(sptr const& baseStream, Int compressedTodo, Int decompressedTodo): - baseStream(baseStream), compressedTodo(compressedTodo), decompressedTodo(decompressedTodo){ - compressedBuffer = std::vector(CompressedBufferSize); - decompressedBuffer = std::vector(DecompressedBufferSize); - decompressionContext = mspack_create_cab_decompressor(nullptr); - } - - virtual ~DecompressStream() { - if (decompressionContext) { - mspack_destroy_cab_decompressor(decompressionContext); - } - } - - void Decompress(); - - public: - // Inherited via Stream - Int Length() override; - Long Position() override; - void Close() override; - Long Seek(Long offset, SeekOrigin const& origin, xna_error_nullarg) override; - Int Read(Byte* buffer, Int bufferLength, Int offset, Int count, xna_error_nullarg) override; - Int Read(std::vector& buffer, Int offset, Int count, xna_error_nullarg) override; - Int ReadByte(xna_error_nullarg) override; - void Write(Byte const* buffer, Int bufferLength, Int offset, Int count, xna_error_nullarg) override; - void Write(std::vector const& buffer, Int offset, Int count, xna_error_nullarg) override; - void WriteByte(Byte value, xna_error_nullarg) override; - - private: - static constexpr int CompressedBufferSize = 65536; - static constexpr int DecompressedBufferSize = 65536; - sptr baseStream = nullptr; - Int compressedTodo{ 0 }; - Int compressedSize{ 0 }; - Int compressedPosition{ 0 }; - std::vector compressedBuffer; - Int decompressedTodo{ 0 }; - Int decompressedSize{ 0 }; - Int decompressedPosition{ 0 }; - std::vector decompressedBuffer; - mscab_decompressor* decompressionContext = nullptr; - - private: - bool DecompressNextBuffer(); - void ReadNextBufferFromDisk(); - void ReadBufferFromDisk(std::vector& buffer, Int& bufferTodo, Int& bufferSize); - }; -} - -#endif \ No newline at end of file diff --git a/framework/xna.h b/framework/xna.h index eac110e..1a82cc9 100644 --- a/framework/xna.h +++ b/framework/xna.h @@ -24,7 +24,6 @@ #include "Windows.h" #include #include "content/manager.hpp" -#include "content/decstream.hpp" #include "platform/init-dx.hpp" #include "csharp/type.hpp"