diff --git a/ChunkManager.cpp b/ChunkManager.cpp index bde4bc5..25b8065 100644 --- a/ChunkManager.cpp +++ b/ChunkManager.cpp @@ -20,7 +20,7 @@ std::vector ChunkManager::chunked(const std::vector& raw, const bool const size_t maxBlockSize = BLOCK_SIZE; const size_t rawSize = raw.size(); - uint16_t blockLen = 0; + uint32_t blockLen = 0; uint32_t lastChunkRawSize; std::vector compressedBlocks; for (size_t offset = 0; offset < rawSize; offset += maxBlockSize) @@ -45,8 +45,8 @@ std::vector ChunkManager::chunked(const std::vector& raw, const bool // Zmiana rozmiaru do faktycznego rozmiaru po kompresji zipChunk.resize(zipSize); - uint32_t chs = chunk.size(); - uint32_t zch = outChunk.size(); + uint32_t chs = static_cast(chunk.size()); + uint32_t zch = static_cast(outChunk.size()); //addIntToVector(compressedBlocks, chs); lastChunkRawSize = chs; @@ -60,7 +60,7 @@ std::vector ChunkManager::chunked(const std::vector& raw, const bool // Wstaw liczbê o iloœci bloków do vectora; // Przekonpwertuj usigned int32 na ci¹g znkaów // uint16_t blockLen = blockSizes .size(); - addIntToVector(zip, blockLen); + addIntToVector(zip, blockLen); addIntToVector(zip, maxBlockSize); addIntToVector(zip, lastChunkRawSize); @@ -78,7 +78,7 @@ std::vector ChunkManager::chunked(const std::vector& raw, const bool std::vector ChunkManager::dechunked(const std::vector& zip, const bool& compress, const bool& encrypt) { size_t offset = 0; - const uint16_t chunkLen = getIntFromVector(zip, offset); + const uint32_t chunkLen = getIntFromVector(zip, offset); const uint32_t chunkBeforeSize = getIntFromVector(zip, offset); const uint32_t chunkLastSize = getIntFromVector(zip, offset); diff --git a/CreateCargo.cpp b/CreateCargo.cpp index 6d22f0f..50dc8f9 100644 --- a/CreateCargo.cpp +++ b/CreateCargo.cpp @@ -38,7 +38,7 @@ CreateCargo::~CreateCargo() { //----------------------------------------------------------------------------- // Punk wejœcia do tworzenia archivum //----------------------------------------------------------------------------- -bool CreateCargo::Create(const std::string& path, const short& flag) +bool CreateCargo::Create(const std::string& path, const uint8_t& flag) { cargoFile = path + "." + extension; catalogPath = path; @@ -88,9 +88,9 @@ bool CreateCargo::Create(const std::string& path, const short& flag) } // Zapisywanie klucza szyfruj¹cego - if (flag == 2 || flag == 3 || encList.size() > 0) + if (flag == FILE_FLAG_ENCRYPT || flag == FILE_FLAG_ZIPENC || encList.size() > 0) { - crypt.saveKey(catalogPath, hppKey); + eman.saveKey(catalogPath, hppKey); } return true; @@ -119,7 +119,7 @@ bool CreateCargo::GetFileList(const std::string& path) else { PathConf pc; - if (methodFlags > -1) + if (methodFlags != 0xAB) { pc.path = PathToUnixLike(tmpPath); pc.parameter = methodFlags; @@ -184,9 +184,8 @@ CargoHead CreateCargo::CreateCargoHead(const uint32_t& filesLen, const uint64_t& CargoHead ch; ch.signature = signature; - ch.version = version; - ch.files = filesLen; ch.table = table; + ch.files = filesLen; return ch; } @@ -194,11 +193,11 @@ CargoHead CreateCargo::CreateCargoHead(const uint32_t& filesLen, const uint64_t& //----------------------------------------------------------------------------- // Sprawdza czy plik znajduje siê na liœcie //----------------------------------------------------------------------------- -void CreateCargo::computingBytes(const int8_t& flag, std::vector& input, std::vector& output) +void CreateCargo::computingBytes(const uint8_t& flag, std::vector& input, std::vector& output) { //Flaga aktywna sprawdza czy plik jest na liœcie. Jeœli jest to zwraca surowedane //Przeciwnie kompresuje dane - ChunkManager cm(crypt); + ChunkManager cm(eman); switch (flag) { @@ -214,10 +213,6 @@ void CreateCargo::computingBytes(const int8_t& flag, std::vector& input, s output = cm.chunked(input, true, true); break; - case FILE_FLAG_RAW: - output = cm.chunked(input, false, false); - break; - default: output = std::move(input); break; @@ -231,13 +226,12 @@ std::vector CreateCargo::ComputingHeadFiles() { //Utwórz header TMP. Zabezpiecza Pierwsze bajty na w³aœciwy nag³ówek CargoHead cargoHead = CreateCargoHead(0, 0); - offset += cargoHead.signature.length() + sizeof(cargoHead.version) + sizeof(cargoHead.files) + sizeof(cargoHead.table); + offset += cargoHead.signature.length() + sizeof(cargoHead.files) + sizeof(cargoHead.table); //Zapisanie tymczasowego nag³owka jako rezerwacja miejsca cargo.write(cargoHead.signature.data(), cargoHead.signature.length()); - cargo.write(reinterpret_cast(&cargoHead.version), sizeof(cargoHead.version)); - cargo.write(reinterpret_cast(&cargoHead.files), sizeof(cargoHead.files)); cargo.write(reinterpret_cast(&cargoHead.table), sizeof(cargoHead.table)); + cargo.write(reinterpret_cast(&cargoHead.files), sizeof(cargoHead.files)); std::vector filesTable; @@ -269,13 +263,14 @@ std::vector CreateCargo::ComputingHeadFiles() std::vector pakBuffer; computingBytes(file.parameter, buffer, pakBuffer); + std::cout << static_cast(file.parameter) << std::endl; + FilesTable ft; ft.nameFile = path; ft.nameLen = path.length(); - ft.hashName = fnv64(path); ft.offset = offset; ft.size = pakBuffer.size(); - ft.flag = static_cast(file.parameter); + ft.flag = file.parameter; ft.crc = crc; cargo.write(reinterpret_cast(pakBuffer.data()), pakBuffer.size()); @@ -358,24 +353,6 @@ std::string CreateCargo::UpperString(std::string s) { return s; } -//----------------------------------------------------------------------------- -// Wygenerój FNV-1a HASH -//----------------------------------------------------------------------------- -uint64_t CreateCargo::fnv64(const std::string& data) -{ - const uint64_t fnvOffset = 14695981039346656037u; - const uint64_t fnvPrime = 1099511628211u; - - uint64_t hash = fnvOffset; - for (unsigned char c : data) - { - hash ^= c; - hash *= fnvPrime; - } - - return hash; -} - //----------------------------------------------------------------------------- // Trworzenie archiwum //----------------------------------------------------------------------------- @@ -402,7 +379,6 @@ bool CreateCargo::WriteCargo() cargo.write(reinterpret_cast(&head.nameLen), sizeof(head.nameLen)); cargo.write(head.nameFile.data(), head.nameLen); - cargo.write(reinterpret_cast(&head.hashName), sizeof(head.hashName)); cargo.write(reinterpret_cast(&head.offset), sizeof(head.offset)); cargo.write(reinterpret_cast(&head.size), sizeof(head.size)); cargo.write(reinterpret_cast(&head.crc), sizeof(head.crc)); @@ -417,9 +393,8 @@ bool CreateCargo::WriteCargo() //Nadpisz tymczasowy nag³ówek cargo.write(cargoHead.signature.data(), cargoHead.signature.length()); - cargo.write(reinterpret_cast(&cargoHead.version), sizeof(cargoHead.version)); - cargo.write(reinterpret_cast(&cargoHead.files), sizeof(cargoHead.files)); cargo.write(reinterpret_cast(&cargoHead.table), sizeof(cargoHead.table)); + cargo.write(reinterpret_cast(&cargoHead.files), sizeof(cargoHead.files)); cargo.close(); diff --git a/CreateCargo.h b/CreateCargo.h index c0d1d95..a870d6d 100644 --- a/CreateCargo.h +++ b/CreateCargo.h @@ -47,7 +47,7 @@ struct PathConf { std::string path; - int8_t parameter; + uint8_t parameter; }; class CreateCargo { @@ -56,14 +56,14 @@ public: virtual ~CreateCargo(); // Punk wejœcia do tworzenia archivum - bool Create(const std::string&, const short&); + bool Create(const std::string&, const uint8_t&); private: const std::string signature; const std::string extension; const signed char version; - short methodFlags; + uint8_t methodFlags; std::string catalogPath; @@ -72,7 +72,7 @@ private: std::vector filesList; - EncryptionManager crypt; + EncryptionManager eman; bool hppKey; // listy wyj¹tków @@ -110,7 +110,7 @@ private: void GetFilters(const std::string&); // Sprawdza czy plik znajduje siê na liœcie - void computingBytes(const int8_t&, std::vector&, std::vector&); + void computingBytes(const uint8_t&, std::vector&, std::vector&); // Sprawdzanie rozsze¿eñ plików bool CheckFileExtension(const std::string&, const std::vector&); @@ -118,9 +118,6 @@ private: // Zamieñ ca³y ci¹g na du¿e litery std::string UpperString(std::string); - // Wygenerój FNV-1a HASH - uint64_t fnv64(const std::string& data); - // ZnajdŸ wskazany element na liœcie bool FindOnTheList(const std::vector&, const std::string&); }; diff --git a/DataStruct.h b/DataStruct.h index 2e75f30..c4113c6 100644 --- a/DataStruct.h +++ b/DataStruct.h @@ -34,27 +34,19 @@ #define CHUNK_STREAM_16MB 16777216 // 16MB #define CHUNK_STREAM_256MB 268435456 // 256MB -enum StoreMethod -{ - FILTERING = -1, - RAW = 0, - COMPRESS = 1, - ENCRYPT = 2, - COMPRESSxENCRYPT = 3 -}; +#define FILE_FLAG_RAW 0x00 +#define FILE_FLAG_COMPRESS 0x0F +#define FILE_FLAG_ENCRYPT 0xF0 +#define FILE_FLAG_ZIPENC 0xFF -#define FILE_FLAG_RAW 0x00 -#define FILE_FLAG_COMPRESS 0x01 -#define FILE_FLAG_ENCRYPT 0x02 -#define FILE_FLAG_ZIPENC 0x03 -#define FILE_FLAG_CHUNK 0x04 +#define FILE_FLAG_FILTERING 0xAB //Prgoram title #define PROGRAM_TITLE "eXtendet PAK" -#define PROGRAM_VERSION "v0.4" +#define PROGRAM_VERSION "v0.5" #define PROGRAM_AUTHOR "Yanczi" -#define PROGRAM_COMPILING "12 December 2025" +#define PROGRAM_COMPILING "19 December 2025" #define PROGRAM_LICENSE "GNU LGPL v3" //Limity @@ -64,18 +56,17 @@ enum StoreMethod struct CargoHead { std::string signature; - int8_t version; - uint32_t files; + uint8_t version; uint64_t table; + uint32_t files; }; struct FilesTable { uint8_t nameLen; std::string nameFile; - uint64_t hashName; uint64_t offset; uint64_t size; uint64_t crc; - int8_t flag; + uint8_t flag; }; \ No newline at end of file diff --git a/ExtractCargo.cpp b/ExtractCargo.cpp index c5ca9d0..6006138 100644 --- a/ExtractCargo.cpp +++ b/ExtractCargo.cpp @@ -98,9 +98,10 @@ bool ExtractCargo::CheckCargoFile() } cargoFile.read(magic.data(), magic.size()); - cargoFile.read(reinterpret_cast(&cargoVer), sizeof(cargoVer)); - cargoFile.read(reinterpret_cast(&filesLen), sizeof(filesLen)); + + // Pobierz pozycjê tablicy plików i jej rozmiar cargoFile.read(reinterpret_cast(&tablePosition), sizeof(tablePosition)); + cargoFile.read(reinterpret_cast(&filesLen), sizeof(filesLen)); if (std::string(magic.begin(), magic.end()) != signature) { @@ -108,12 +109,6 @@ bool ExtractCargo::CheckCargoFile() return false; } - if (cargoVer != version) - { - std::cerr << "Error: Wrong cargo version" << std::endl; - return false; - } - filesHeadsOffset = signature.length() + sizeof(cargoVer) + sizeof(filesLen); return true; @@ -137,9 +132,11 @@ bool ExtractCargo::HashValid(const std::vector& data, const uint64_t& crc) //----------------------------------------------------------------------------- // Magiczna funkcja do dekompresji i deszyfracji danych //----------------------------------------------------------------------------- -void ExtractCargo::computingBytes(const std::vector& input, std::vector& output, const int8_t& flag) +void ExtractCargo::computingBytes(const std::vector& input, std::vector& output, const uint8_t& flag) { ChunkManager cm(eman); + + std::cout << static_cast(flag) << std::endl; switch (flag) { @@ -153,10 +150,7 @@ void ExtractCargo::computingBytes(const std::vector& input, std::vector(&fhTmp.hashName), sizeof(fhTmp.hashName)); cargoFile.read(reinterpret_cast(&fhTmp.offset), sizeof(fhTmp.offset)); cargoFile.read(reinterpret_cast(&fhTmp.size), sizeof(fhTmp.size)); cargoFile.read(reinterpret_cast(&fhTmp.crc), sizeof(fhTmp.crc)); diff --git a/ExtractCargo.h b/ExtractCargo.h index f04effb..e5cc23c 100644 --- a/ExtractCargo.h +++ b/ExtractCargo.h @@ -76,6 +76,6 @@ private: void CreateDirections(std::filesystem::path); // Magiczna funkcja do dekompresji i deszyfracji danych - void computingBytes(const std::vector&, std::vector&, const int8_t&); + void computingBytes(const std::vector&, std::vector&, const uint8_t&); }; diff --git a/ViewCargo.cpp b/ViewCargo.cpp index 6dcdbd2..ed04866 100644 --- a/ViewCargo.cpp +++ b/ViewCargo.cpp @@ -20,14 +20,7 @@ #include "ViewCargo.h" ViewCargo::ViewCargo() - :signature(SIGNATURE) - , version(VERSION) - , filesLen(0) - , tablePos(0) -{ - std::vector header = {"Comress", "Encrypt", "Path", "RefHASH"}; - list.push_back(header); -} +{} //----------------------------------------------------------------------------- // Wywo³ywanie @@ -49,26 +42,24 @@ bool ViewCargo::View(const std::string& path) } //SprawdŸ czy kontener jest prawid³owy - if (!CheckCargoFile(path)) + if (!ViewFiles(path)) { std::cerr << "Nie prawidlowa struktura kontenera Void" << std::endl; return false; } - //Pobieranie listy plików - GetFileList(path); - - //Renderowanie listy plików - RenderList(); - return true; } //----------------------------------------------------------------------------- // Sprawdzenie poprawnoœci kontenera //----------------------------------------------------------------------------- -bool ViewCargo::CheckCargoFile(const std::string& path) +bool ViewCargo::ViewFiles(const std::string& path) { + uint64_t tabPos = 0; + uint32_t tabSize = 0; + + const std::string signature = SIGNATURE; std::vector magic(signature.length()); int8_t cargoVer = 0; @@ -81,15 +72,14 @@ bool ViewCargo::CheckCargoFile(const std::string& path) } //--------------------------------------------------------------- - // Odczytywanie pierwszych 11 bajtów nag³ówka pliku - // 6 pierwszych to sygnatura - // 1 wersja kontenera - // 4 iloœæ plików w kontenerze + // Odczytywanie pierwszych 16 bajtów nag³ówka pliku + // 4 Sygnatura kontenera XPAK + // 8 Offset tablicy plików + // 4 Rozmiar tablicy plików //--------------------------------------------------------------- cargo.read(magic.data(), magic.size()); - cargo.read(reinterpret_cast(&cargoVer), sizeof(cargoVer)); - cargo.read(reinterpret_cast(&filesLen), sizeof(filesLen)); - cargo.read(reinterpret_cast(&tablePos), sizeof(tablePos)); + cargo.read(reinterpret_cast(&tabPos), sizeof(tabPos)); + cargo.read(reinterpret_cast(&tabSize), sizeof(tabSize)); //SprawdŸ czy kontener ma poprawn¹ sygnature if (std::string(magic.begin(), magic.end()) != signature) @@ -99,28 +89,13 @@ bool ViewCargo::CheckCargoFile(const std::string& path) return false; } - //SprawdŸ spójnoœæ wersji kontenera - if (cargoVer != version) - { - std::cerr << "Error: Wrong cargo version" << std::endl; - cargo.close(); - return false; - } + std::cout << "ZIP" << " " << "ENC" << " " << "Path" << std::endl; - cargo.close(); + // Przeskocz do tablicy plików + cargo.seekg(tabPos); - return true; -} - -//----------------------------------------------------------------------------- -// Pobieranie listy plików z kontenera -//----------------------------------------------------------------------------- -void ViewCargo::GetFileList(const std::string& path) -{ - std::ifstream cargo(path, std::ios::binary); - cargo.seekg(tablePos); - - for (uint32_t i = 0; i < filesLen; ++i) + // Za³aduj dane o plikach + for (uint32_t i = 0; i < tabSize; ++i) { FilesTable fhTmp; cargo.read(reinterpret_cast(&fhTmp.nameLen), sizeof(fhTmp.nameLen)); @@ -129,74 +104,50 @@ void ViewCargo::GetFileList(const std::string& path) cargo.read(nameBuffor.data(), fhTmp.nameLen); fhTmp.nameFile = std::string(nameBuffor.begin(), nameBuffor.end()); - cargo.read(reinterpret_cast(&fhTmp.hashName), sizeof(fhTmp.hashName)); cargo.read(reinterpret_cast(&fhTmp.offset), sizeof(fhTmp.offset)); cargo.read(reinterpret_cast(&fhTmp.size), sizeof(fhTmp.size)); cargo.read(reinterpret_cast(&fhTmp.crc), sizeof(fhTmp.crc)); cargo.read(reinterpret_cast(&fhTmp.flag), sizeof(fhTmp.flag)); //Tworzenie wierszy tabeli - CreateTableRow(fhTmp.nameFile, fhTmp.flag, fhTmp.hashName); + ShowFile(fhTmp.nameFile, fhTmp.flag); } cargo.close(); - tui.table(list); + + return true; } //----------------------------------------------------------------------------- // Generowanie wierszy do tabeli //----------------------------------------------------------------------------- -void ViewCargo::CreateTableRow(const std::string& file, const uint8_t& flag, const uint64_t& hash) +void ViewCargo::ShowFile(const std::string& file, const uint8_t& flag) { - //Zamiania crc liczbowej na hex string - std::stringstream ss; - ss << "0x" << std::hex << std::uppercase << hash; - - //Lista - std::vector tmpList = { "[ ]", "[ ]", file, ss.str() }; - - std::vector cell; - - ftxui::Element eZip; - ftxui::Element eEnc; + std::string compresedCheck = "[ ]"; + std::string encryptedCheck = "[ ]"; // Ustawianie checkboxów switch (flag) { case FILE_FLAG_COMPRESS: - //eZip = ftxui::text(" [x] ") | ftxui::color(ftxui::Color::Cyan); - //eEnc = ftxui::text(" [ ] ") | ftxui::color(ftxui::Color::White); - tmpList[0] = "[x]"; + compresedCheck = "[x]"; break; case FILE_FLAG_ENCRYPT: - tmpList[1] = "[x]"; + encryptedCheck = "[x]"; break; case FILE_FLAG_ZIPENC: - tmpList[0] = "[x]"; - tmpList[1] = "[x]"; + compresedCheck = "[x]"; + encryptedCheck = "[x]"; break; default: - tmpList[0] = "[ ]"; - tmpList[1] = "[ ]"; + compresedCheck = "[ ]"; + encryptedCheck = "[ ]"; break; } - //Dodanie wiersza do listy - list.push_back(tmpList); -} - -//----------------------------------------------------------------------------- -// Renderowanie listy plików -//----------------------------------------------------------------------------- -void ViewCargo::RenderList() -{ - //Dodawanie wierszy do kolumn - ftxui::Element table = ftxui::vbox(std::move(filesList)); - - auto screen = ftxui::Screen::Create(ftxui::Dimension::Fit(table)); - ftxui::Render(screen, table); - screen.Print(); + // Wyœwietlanie + std::cout << compresedCheck << " " << encryptedCheck << " " << file << std::endl; } diff --git a/ViewCargo.h b/ViewCargo.h index 1ab452e..576b336 100644 --- a/ViewCargo.h +++ b/ViewCargo.h @@ -30,7 +30,6 @@ #include #include "DataStruct.h" -#include "Tui.h" class ViewCargo { public: @@ -40,19 +39,8 @@ public: bool View(const std::string&); private: - Tui tui; - const std::string signature; - const uint16_t version; - - uint32_t filesLen; - uint64_t tablePos; - std::vector filesList; - std::vector> list; - - bool CheckCargoFile(const std::string&); - void GetFileList(const std::string&); - void RenderList(); - void CreateTableRow(const std::string&, const uint8_t&, const uint64_t&); + bool ViewFiles(const std::string&); + void ShowFile(const std::string&, const uint8_t&); }; diff --git a/testx/text_file.txt b/testx/text_file.txt index ed2b7f7..02a2623 100644 --- a/testx/text_file.txt +++ b/testx/text_file.txt @@ -1,251 +1,126 @@ Nam strzelać nie kazano. - WstÄ…piÅ‚em na dziaÅ‚o - I spójrzaÅ‚em na pole; dwieÅ›cie armat grzmiaÅ‚o. - Artyleryi ruskiej ciÄ…gnÄ… siÄ™ szeregi, - Prosto, dÅ‚ugo, daleko, jako morza brzegi; - I widziaÅ‚em ich wodza: przybiegÅ‚, mieczem skinÄ…Å‚ - I jak ptak jedno skrzydÅ‚o wojska swego zwinÄ…Å‚; - Wylewa siÄ™ spod skrzydÅ‚a Å›ciÅ›niona piechota - DÅ‚ugÄ… czarnÄ… kolumnÄ…, jako lawa bÅ‚ota, - Nasypana iskrami bagnetów. Jak sÄ™py - Czarne chorÄ…gwie na Å›mierć prowadzÄ… zastÄ™py. - - Przeciw nim sterczy biaÅ‚a, wÄ…ska, zaostrzona, - Jak gÅ‚az bodzÄ…cy morze, reduta Ordona. - Sześć tylko miaÅ‚a armat; wciąż dymiÄ… i Å›wiecÄ…; - I nie tyle prÄ™dkich słów gniewne usta miecÄ…, - Nie tyle przejdzie uczuć przez duszÄ™ w rozpaczy, - Ile z tych dziaÅ‚ leciaÅ‚o bomb, kul i kartaczy. - Patrz, tam granat w sam Å›rodek kolumny siÄ™ nurza, - Jak w fale bryÅ‚a lawy, puÅ‚k dymem zachmurza; - PÄ™ka Å›ród dymu granat, szyk pod niebo leci - I ogromna Å‚ysina Å›ród kolumny Å›wieci. - - Tam kula, lecÄ…c, z dala grozi, szumi, wyje. - Ryczy jak byk przed bitwÄ…, miota siÄ™, grunt ryje; - - Już dopadÅ‚a; jak boa Å›ród kolumn siÄ™ zwija, - Pali piersiÄ…, rwie zÄ™bem, oddechem zabija. - Najstraszniejszej nie widać, lecz sÅ‚ychać po dźwiÄ™ku, - Po waleniu siÄ™ trupów, po ranionych jÄ™ku: - Gdy kolumnÄ™ od koÅ„ca do koÅ„ca przewierci, - Jak gdyby Å›rodkiem wojska przeszedÅ‚ anioÅ‚ Å›mierci. - - Gdzież jest król, co na rzezie tÅ‚umy te wyprawia? - Czy dzieli ich odwagÄ™, czy pierÅ› sam nadstawia? - Nie, on siedzi o pięćset mil na swej stolicy, - Król wielki, samowÅ‚adnik Å›wiata poÅ‚owicy; - ZmarszczyÅ‚ brwi, - i tysiÄ…ce kibitek wnet leci; - PodpisaÅ‚, - tysiÄ…c matek opÅ‚akuje dzieci; - SkinÄ…Å‚, - padajÄ… knuty od Niemna do Chiwy. - Mocarzu, jak Bóg silny, jak szatan zÅ‚oÅ›liwy, - Gdy Turków za BaÅ‚kanem twoje straszÄ… spiże, - Gdy poselstwo paryskie twoje stopy liże, - - Warszawa jedna twojej mocy siÄ™ urÄ…ga, - Podnosi na ciÄ™ rÄ™kÄ™ i koronÄ™ Å›ciÄ…ga, - KoronÄ™ Kazimierzów, Chrobrych z twojej gÅ‚owy, - BoÅ› jÄ… ukradÅ‚ i skrwawiÅ‚, synu Wasilowy! - - Car dziwi siÄ™ - ze strachu. drzÄ… Petersburczany, - Car gniewa siÄ™ - ze strachu mrÄ… jego dworzany; - Ale sypiÄ… siÄ™ wojska, których Bóg i wiara - Jest Car. - Car gniewny: umrzem, rozweselim Cara. - PosÅ‚any wódz kaukaski z siÅ‚ami pół-Å›wiata, - Wierny, czynny i sprawny - jak knut w rÄ™ku kata. - - Ura! ura! Patrz, blisko reduty, już w rowy - WalÄ… siÄ™, na faszynÄ™ kÅ‚adÄ…c swe tuÅ‚owy; - Już czerniÄ… siÄ™ na biaÅ‚ych palisadach wałów. - Jeszcze reduta w Å›rodku, jasna od wystrzałów, - Czerwieni siÄ™ nad czerniÄ…: jak w Å›rodek mrowiaka - Wrzucony motyl bÅ‚yska, - mrowie go naciska, - - ZgasÅ‚ - tak zgasÅ‚a reduta. Czyż ostatnie dziaÅ‚o - StrÄ…cone z Å‚oża w piasku paszczÄ™ zagrzebaÅ‚o? - Czy zapaÅ‚ krwiÄ… ostatni bombardyjer zalaÅ‚? - ZgasnÄ…Å‚ ogieÅ„. - Już Moskal rogatki wywalaÅ‚. - - Gdzież rÄ™czna broÅ„? - Ach, dzisiaj pracowaÅ‚a wiÄ™cej - Niż na wszystkich przeglÄ…dach za wÅ‚adzy książęcej; - ZgadÅ‚em, dlaczego milczy, - bo nieraz widziaÅ‚em - GarstkÄ™ naszych walczÄ…cÄ… z Moskali nawaÅ‚em. - Gdy godzinÄ™ woÅ‚ano dwa sÅ‚owa: pal, nabij; - Gdy oddechy dym tÅ‚umi, trud ramiona sÅ‚abi; - A wciąż grzmi rozkaz wodzów, wre żoÅ‚nierza czynność; - Na koniec bez rozkazu peÅ‚niÄ… swÄ… powinność, - Na koniec bez rozwagi, bez czucia, pamiÄ™ci, - Å»oÅ‚nierz jako mÅ‚yn palny nabija - grzmi - krÄ™ci - BroÅ„ od oka do nogi, od nogi na oko: - Aż rÄ™ka w Å‚adownicy dÅ‚ugo i głęboko - SzukaÅ‚a, nie znalazÅ‚a - i żoÅ‚nierz pobladnÄ…Å‚, - Nie znalazÅ‚szy Å‚adunku, już broniÄ… nie wÅ‚adnÄ…Å‚; - I uczuÅ‚, że go pali strzelba rozogniona; - UpuÅ›ciÅ‚ jÄ… i upadÅ‚; - nim dobijÄ…, skona. - Takem myÅ›liÅ‚, - a w szaniec nieprzyjaciół kupa - Już Å‚azÅ‚a, jak robactwo na Å›wieżego trupa. - - PociemniaÅ‚o mi w oczach - a gdym Å‚zy ocieraÅ‚, - SÅ‚yszaÅ‚em, że coÅ› do mnie mówiÅ‚ mój JeneraÅ‚. - On przez lunetÄ™ wspartÄ… na moim ramieniu - DÅ‚ugo na szturm i szaniec poglÄ…daÅ‚ w milczeniu. - Na koniec rzekÅ‚; "Stracona". - Spod lunety jego - Wymknęło siÄ™ Å‚ez kilka, - rzekÅ‚ do mnie: "Kolego, - Wzrok mÅ‚ody od szkieÅ‚ lepszy; patrzaj, tam na wale, - Znasz Ordona, czy widzisz, gdzie jest?" - "Jenerale, - Czy go znam? - Tam staÅ‚ zawsze, to dziaÅ‚o kierowaÅ‚. - Nie widzÄ™ - znajdÄ™ - dojrzÄ™! - Å›ród dymu siÄ™ schowaÅ‚: - Lecz Å›ród najgÄ™stszych kłębów dymu ileż razy - WidziaÅ‚em rÄ™kÄ™ jego, dajÄ…cÄ… rozkazy. - - WidzÄ™ go znowu, - widzÄ™ rÄ™kÄ™ - bÅ‚yskawicÄ™, - Wywija, grozi wrogom, trzyma palnÄ… Å›wiécÄ™, - BiorÄ… go - zginÄ…Å‚ - o nie, - skoczyÅ‚ w dół, - do lochów"! - "Dobrze - rzecze JeneraÅ‚ - nie odda im prochów". - - Tu blask - dym - chwila cicho - i huk jak stu gromów. - ZaćmiÅ‚o siÄ™ powietrze od ziemi wylomów, - Harmaty podskoczyÅ‚y i jak wystrzelone - ToczyÅ‚y siÄ™ na koÅ‚ach - lonty zapalone - Nie trafiÅ‚y do swoich panew. I dym wionÄ…Å‚ - Prosto ku nam; i w gÄ™stej chmurze nas ochÅ‚onÄ…Å‚. - -I nie byÅ‚o nic widać prócz granatów blasku, - +I nie byÅ‚o nic widać prócz granatów blasku I powoli dym rzedniaÅ‚, opadaÅ‚ deszcz piasku. - SpojrzaÅ‚em na redutÄ™; - waÅ‚y, palisady, - DziaÅ‚a i naszych garstka, i wrogów gromady; - Wszystko jako sen znikÅ‚o. - Tylko czarna bryÅ‚a - Ziemi nieksztaÅ‚tnej leży - rozjemcza mogiÅ‚a. - Tam i ci, co bronili, -i ci, co siÄ™ wdarli, - Pierwszy raz pokój szczery i wieczny zawarli. - Choćby cesarz Moskalom kazaÅ‚ wstać, już dusza - Moskiewska. tam raz pierwszy, cesarza nie sÅ‚usza. - Tam zagrzebane tylu set ciaÅ‚a, imiona: - Dusze gdzie? nie wiem; lecz wiem, gdzie dusza Ordona. - On bÄ™dzie Patron szaÅ„ców! - Bo dzieÅ‚o zniszczenia - W dobrej sprawie jest Å›wiÄ™te, Jak dzieÅ‚o tworzenia; - Bóg wyrzekÅ‚ sÅ‚owo staÅ„ siÄ™, Bóg i zgiÅ„ wyrzecze. - Kiedy od ludzi wiara i wolność uciecze, - Kiedy ziemiÄ™ despotyzm i duma szalona - OblejÄ…, jak Moskale redutÄ™ Ordona - - KarzÄ…c plemiÄ™ zwyciężców zbrodniami zatrute, - Bóg wysadzi tÄ™ ziemiÄ™, jak on swÄ… redutÄ™. \ No newline at end of file diff --git a/testx2/herrsher-of-the-void.png b/testx2/herrsher-of-the-void.png deleted file mode 100644 index d6dfc12..0000000 Binary files a/testx2/herrsher-of-the-void.png and /dev/null differ diff --git a/testx2/herrsher-of-the-void.tga b/testx2/herrsher-of-the-void.tga deleted file mode 100644 index 8a60e54..0000000 Binary files a/testx2/herrsher-of-the-void.tga and /dev/null differ diff --git a/testx2/mus_honkai_space.ogg b/testx2/mus_honkai_space.ogg deleted file mode 100644 index 136cba5..0000000 Binary files a/testx2/mus_honkai_space.ogg and /dev/null differ diff --git a/testx2/text_file.txt b/testx2/text_file.txt deleted file mode 100644 index ed2b7f7..0000000 --- a/testx2/text_file.txt +++ /dev/null @@ -1,251 +0,0 @@ -Nam strzelać nie kazano. - WstÄ…piÅ‚em na dziaÅ‚o - -I spójrzaÅ‚em na pole; dwieÅ›cie armat grzmiaÅ‚o. - -Artyleryi ruskiej ciÄ…gnÄ… siÄ™ szeregi, - -Prosto, dÅ‚ugo, daleko, jako morza brzegi; - -I widziaÅ‚em ich wodza: przybiegÅ‚, mieczem skinÄ…Å‚ - -I jak ptak jedno skrzydÅ‚o wojska swego zwinÄ…Å‚; - -Wylewa siÄ™ spod skrzydÅ‚a Å›ciÅ›niona piechota - -DÅ‚ugÄ… czarnÄ… kolumnÄ…, jako lawa bÅ‚ota, - -Nasypana iskrami bagnetów. Jak sÄ™py - -Czarne chorÄ…gwie na Å›mierć prowadzÄ… zastÄ™py. - - - -Przeciw nim sterczy biaÅ‚a, wÄ…ska, zaostrzona, - -Jak gÅ‚az bodzÄ…cy morze, reduta Ordona. - -Sześć tylko miaÅ‚a armat; wciąż dymiÄ… i Å›wiecÄ…; - -I nie tyle prÄ™dkich słów gniewne usta miecÄ…, - -Nie tyle przejdzie uczuć przez duszÄ™ w rozpaczy, - -Ile z tych dziaÅ‚ leciaÅ‚o bomb, kul i kartaczy. - -Patrz, tam granat w sam Å›rodek kolumny siÄ™ nurza, - -Jak w fale bryÅ‚a lawy, puÅ‚k dymem zachmurza; - -PÄ™ka Å›ród dymu granat, szyk pod niebo leci - -I ogromna Å‚ysina Å›ród kolumny Å›wieci. - - - -Tam kula, lecÄ…c, z dala grozi, szumi, wyje. - -Ryczy jak byk przed bitwÄ…, miota siÄ™, grunt ryje; - - -Już dopadÅ‚a; jak boa Å›ród kolumn siÄ™ zwija, - -Pali piersiÄ…, rwie zÄ™bem, oddechem zabija. - -Najstraszniejszej nie widać, lecz sÅ‚ychać po dźwiÄ™ku, - -Po waleniu siÄ™ trupów, po ranionych jÄ™ku: - -Gdy kolumnÄ™ od koÅ„ca do koÅ„ca przewierci, - -Jak gdyby Å›rodkiem wojska przeszedÅ‚ anioÅ‚ Å›mierci. - - - -Gdzież jest król, co na rzezie tÅ‚umy te wyprawia? - -Czy dzieli ich odwagÄ™, czy pierÅ› sam nadstawia? - -Nie, on siedzi o pięćset mil na swej stolicy, - -Król wielki, samowÅ‚adnik Å›wiata poÅ‚owicy; - -ZmarszczyÅ‚ brwi, - i tysiÄ…ce kibitek wnet leci; - -PodpisaÅ‚, - tysiÄ…c matek opÅ‚akuje dzieci; - -SkinÄ…Å‚, - padajÄ… knuty od Niemna do Chiwy. - -Mocarzu, jak Bóg silny, jak szatan zÅ‚oÅ›liwy, - -Gdy Turków za BaÅ‚kanem twoje straszÄ… spiże, - -Gdy poselstwo paryskie twoje stopy liże, - - -Warszawa jedna twojej mocy siÄ™ urÄ…ga, - -Podnosi na ciÄ™ rÄ™kÄ™ i koronÄ™ Å›ciÄ…ga, - -KoronÄ™ Kazimierzów, Chrobrych z twojej gÅ‚owy, - -BoÅ› jÄ… ukradÅ‚ i skrwawiÅ‚, synu Wasilowy! - - - -Car dziwi siÄ™ - ze strachu. drzÄ… Petersburczany, - -Car gniewa siÄ™ - ze strachu mrÄ… jego dworzany; - -Ale sypiÄ… siÄ™ wojska, których Bóg i wiara - -Jest Car. - Car gniewny: umrzem, rozweselim Cara. - -PosÅ‚any wódz kaukaski z siÅ‚ami pół-Å›wiata, - -Wierny, czynny i sprawny - jak knut w rÄ™ku kata. - - - -Ura! ura! Patrz, blisko reduty, już w rowy - -WalÄ… siÄ™, na faszynÄ™ kÅ‚adÄ…c swe tuÅ‚owy; - -Już czerniÄ… siÄ™ na biaÅ‚ych palisadach wałów. - -Jeszcze reduta w Å›rodku, jasna od wystrzałów, - -Czerwieni siÄ™ nad czerniÄ…: jak w Å›rodek mrowiaka - -Wrzucony motyl bÅ‚yska, - mrowie go naciska, - - -ZgasÅ‚ - tak zgasÅ‚a reduta. Czyż ostatnie dziaÅ‚o - -StrÄ…cone z Å‚oża w piasku paszczÄ™ zagrzebaÅ‚o? - -Czy zapaÅ‚ krwiÄ… ostatni bombardyjer zalaÅ‚? - -ZgasnÄ…Å‚ ogieÅ„. - Już Moskal rogatki wywalaÅ‚. - - - -Gdzież rÄ™czna broÅ„? - Ach, dzisiaj pracowaÅ‚a wiÄ™cej - -Niż na wszystkich przeglÄ…dach za wÅ‚adzy książęcej; - -ZgadÅ‚em, dlaczego milczy, - bo nieraz widziaÅ‚em - -GarstkÄ™ naszych walczÄ…cÄ… z Moskali nawaÅ‚em. - -Gdy godzinÄ™ woÅ‚ano dwa sÅ‚owa: pal, nabij; - -Gdy oddechy dym tÅ‚umi, trud ramiona sÅ‚abi; - -A wciąż grzmi rozkaz wodzów, wre żoÅ‚nierza czynność; - -Na koniec bez rozkazu peÅ‚niÄ… swÄ… powinność, - -Na koniec bez rozwagi, bez czucia, pamiÄ™ci, - -Å»oÅ‚nierz jako mÅ‚yn palny nabija - grzmi - krÄ™ci - -BroÅ„ od oka do nogi, od nogi na oko: - -Aż rÄ™ka w Å‚adownicy dÅ‚ugo i głęboko - -SzukaÅ‚a, nie znalazÅ‚a - i żoÅ‚nierz pobladnÄ…Å‚, - -Nie znalazÅ‚szy Å‚adunku, już broniÄ… nie wÅ‚adnÄ…Å‚; - -I uczuÅ‚, że go pali strzelba rozogniona; - -UpuÅ›ciÅ‚ jÄ… i upadÅ‚; - nim dobijÄ…, skona. - -Takem myÅ›liÅ‚, - a w szaniec nieprzyjaciół kupa - -Już Å‚azÅ‚a, jak robactwo na Å›wieżego trupa. - - - -PociemniaÅ‚o mi w oczach - a gdym Å‚zy ocieraÅ‚, - -SÅ‚yszaÅ‚em, że coÅ› do mnie mówiÅ‚ mój JeneraÅ‚. - -On przez lunetÄ™ wspartÄ… na moim ramieniu - -DÅ‚ugo na szturm i szaniec poglÄ…daÅ‚ w milczeniu. - -Na koniec rzekÅ‚; "Stracona". - Spod lunety jego - -Wymknęło siÄ™ Å‚ez kilka, - rzekÅ‚ do mnie: "Kolego, - -Wzrok mÅ‚ody od szkieÅ‚ lepszy; patrzaj, tam na wale, - -Znasz Ordona, czy widzisz, gdzie jest?" - "Jenerale, - -Czy go znam? - Tam staÅ‚ zawsze, to dziaÅ‚o kierowaÅ‚. - -Nie widzÄ™ - znajdÄ™ - dojrzÄ™! - Å›ród dymu siÄ™ schowaÅ‚: - -Lecz Å›ród najgÄ™stszych kłębów dymu ileż razy - -WidziaÅ‚em rÄ™kÄ™ jego, dajÄ…cÄ… rozkazy. - - -WidzÄ™ go znowu, - widzÄ™ rÄ™kÄ™ - bÅ‚yskawicÄ™, - -Wywija, grozi wrogom, trzyma palnÄ… Å›wiécÄ™, - -BiorÄ… go - zginÄ…Å‚ - o nie, - skoczyÅ‚ w dół, - do lochów"! - -"Dobrze - rzecze JeneraÅ‚ - nie odda im prochów". - - - -Tu blask - dym - chwila cicho - i huk jak stu gromów. - -ZaćmiÅ‚o siÄ™ powietrze od ziemi wylomów, - -Harmaty podskoczyÅ‚y i jak wystrzelone - -ToczyÅ‚y siÄ™ na koÅ‚ach - lonty zapalone - -Nie trafiÅ‚y do swoich panew. I dym wionÄ…Å‚ - -Prosto ku nam; i w gÄ™stej chmurze nas ochÅ‚onÄ…Å‚. - -I nie byÅ‚o nic widać prócz granatów blasku, - -I powoli dym rzedniaÅ‚, opadaÅ‚ deszcz piasku. - -SpojrzaÅ‚em na redutÄ™; - waÅ‚y, palisady, - -DziaÅ‚a i naszych garstka, i wrogów gromady; - -Wszystko jako sen znikÅ‚o. - Tylko czarna bryÅ‚a - -Ziemi nieksztaÅ‚tnej leży - rozjemcza mogiÅ‚a. - -Tam i ci, co bronili, -i ci, co siÄ™ wdarli, - -Pierwszy raz pokój szczery i wieczny zawarli. - -Choćby cesarz Moskalom kazaÅ‚ wstać, już dusza - -Moskiewska. tam raz pierwszy, cesarza nie sÅ‚usza. - -Tam zagrzebane tylu set ciaÅ‚a, imiona: - -Dusze gdzie? nie wiem; lecz wiem, gdzie dusza Ordona. - -On bÄ™dzie Patron szaÅ„ców! - Bo dzieÅ‚o zniszczenia - -W dobrej sprawie jest Å›wiÄ™te, Jak dzieÅ‚o tworzenia; - -Bóg wyrzekÅ‚ sÅ‚owo staÅ„ siÄ™, Bóg i zgiÅ„ wyrzecze. - -Kiedy od ludzi wiara i wolność uciecze, - -Kiedy ziemiÄ™ despotyzm i duma szalona - -OblejÄ…, jak Moskale redutÄ™ Ordona - - -KarzÄ…c plemiÄ™ zwyciężców zbrodniami zatrute, - -Bóg wysadzi tÄ™ ziemiÄ™, jak on swÄ… redutÄ™. \ No newline at end of file diff --git a/voidcmd.cpp b/voidcmd.cpp index ba0e200..1ba9020 100644 --- a/voidcmd.cpp +++ b/voidcmd.cpp @@ -110,7 +110,7 @@ int main(int argc, char* argv[]) { if (!EmptyPath(path)) { return 1; } - if (!cargo.Create(path, 0x01)) + if (!cargo.Create(path, 0x0F)) { return 1; } @@ -130,7 +130,7 @@ int main(int argc, char* argv[]) { if (arg == "-e" && i + 1 < argc) { path = argv[i + 1]; - if (!cargo.Create(path, 0x02)) + if (!cargo.Create(path, 0xF0)) { return 1; } @@ -140,7 +140,7 @@ int main(int argc, char* argv[]) { if (arg == "-s" && i + 1 < argc) { path = argv[i + 1]; - if (!cargo.Create(path, 0x03)) + if (!cargo.Create(path, 0xFF)) { return 1; } @@ -151,7 +151,7 @@ int main(int argc, char* argv[]) { { path = argv[i + 1]; if (!EmptyPath(path)) { return 1; } - if (!cargo.Create(path, 0xFF)) + if (!cargo.Create(path, 0xAB)) { return 1; } diff --git a/voidcmd.vcxproj b/voidcmd.vcxproj index 119342f..dcc841e 100644 --- a/voidcmd.vcxproj +++ b/voidcmd.vcxproj @@ -104,13 +104,13 @@ _DEBUG;_CONSOLE;%(PreprocessorDefinitions);SODIUM_STATIC true stdcpp17 - 3rd\ftxui\include;3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\xxhash\include;3rd\xxhash\include + 3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\xxhash\include Console true - 3rd\zstd\lib\Debug;3rd\ftxui\Debug;3rd\xxhash\lib\Debug;3rd\libsodium\x64\Debug\v143\static - ftxui-component.lib;ftxui-dom.lib;ftxui-screen.lib;libsodium.lib;zstd_static.lib;xxhash.lib + 3rd\zstd\lib\Debug;3rd\xxhash\lib\Debug;3rd\libsodium\x64\Debug\v143\static + libsodium.lib;zstd_static.lib;xxhash.lib @@ -122,13 +122,13 @@ NDEBUG;_CONSOLE;%(PreprocessorDefinitions);SODIUM_STATIC true stdcpp17 - 3rd\ftxui\include;3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\xxhash\include; + 3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\xxhash\include Console true - 3rd\zstd\lib\Release;3rd\libsodium\x64\Release\v143\static;3rd\xxhash\lib\Release;3rd\ftxui\Release - ftxui-component.lib;ftxui-dom.lib;ftxui-screen.lib;libsodium.lib;zstd_static.lib;xxhash.lib + 3rd\zstd\lib\Release;3rd\libsodium\x64\Release\v143\static;3rd\xxhash\lib\Release + libsodium.lib;zstd_static.lib;xxhash.lib @@ -137,7 +137,6 @@ - @@ -148,7 +147,6 @@ - diff --git a/voidcmd.vcxproj.filters b/voidcmd.vcxproj.filters index d4a64b3..563ca03 100644 --- a/voidcmd.vcxproj.filters +++ b/voidcmd.vcxproj.filters @@ -27,9 +27,6 @@ Pliki źródÅ‚owe - - Pliki źródÅ‚owe - Pliki źródÅ‚owe @@ -53,9 +50,6 @@ Pliki nagłówkowe - - Pliki nagłówkowe - Pliki nagłówkowe