Skip to content

Commit 2f7a1d5

Browse files
author
Andrej Redeky
committed
Huge update with many bugfixes and improvements
- Updated Feldarian Base Library (previously directly used UTF and PCMS16 modules were moved to more proper sub-folder) - Added some options also to the library to compile parts conditionally, defaults should not be changed for this project though! - Added ADPCM-XQ as additional dependency (preferred ADPCM encoder/decoder) - Got rid of some dependencies in main project and moved them here - Package is still WIP and is pretty-much single-purpose, it is a slight modified copy of parts from another project as mentioned few times so it looks like it... - Better support for more files (anything libsndfile can open should be importable as PCM S16 WAV at least) - Better xmake project organization - Completely new look and basic application managment, utilizing parts of cpp-gui-template-sdl2 template by @MartinHelmut (also added to third party license list, just in case) - Cleaned-up readme a bit - Cleaned-up license a bit - Removed no longer valid options and added new ones - Removed no longer valid localization and added new ones - Fixed some more multithreading issues (hopefully last from older code...) - Fixed progress not showing correct total sometimes - Added ability to transcode IMA ADPCM (and optionally OGG, default is OFF) files to PCM on export with more conventional sample rate for easier playback (default is ON) - A bit better system for storing and loading original records - When some error is detected, displays error and recreates cache for given archive - System is still far from perfect, it is basically duck-taped on top of existing solution and is inefficient in the way it calculates hashes... it should be better with use of std::spans that is planned... - Allow Blood Money exports in release finally - Autosave settings on change - Some other misc changes
1 parent 3d41133 commit 2f7a1d5

File tree

119 files changed

+11298
-6016
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+11298
-6016
lines changed

LICENSE_ThirdParty.md

Lines changed: 338 additions & 287 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ Format | Open | Save | Export | Import
3838
* Ability to show modified entries in archives thanks to original records caching.
3939
* Automatically ignore unchanged original files from original archives when trying to import.
4040
* Records caching feature can be disabled, same as the option which ignores unchanged files on import. Beware that disabling records caching also causes unchanged files to get imported.
41-
* Currently pre-packaged with __Steam__ data and default __English__ language.
42-
* When you have different version, just remove `data/records` folder and let it regenerate records on first archive reload.
41+
* Cache gets initialized for the first time on archive open.
42+
* It can be reset for each tool under options when needed.
4343
* Currently 2 supported languages - __English__ and __Czech__
4444
* New localizations can be added by copying `data/localization/English.toml`, translating the entries and placing the copied file back into `data/localization`
4545
* For example, you could create `Deutsch.toml` which would contain translations to __German__ language and place it in the mentioned folder.

data/localization/English.toml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,19 @@ ARCHIVE_DIALOG_SAVE = "Save"
1212
ARCHIVE_DIALOG_SAVE_INTO = "Save into"
1313
ARCHIVE_DIALOG_EXPORT_TO = "Export into"
1414
ARCHIVE_DIALOG_IMPORT_FROM = "Import from"
15+
ARCHIVE_DIALOG_CLOSE = "Close"
16+
ARCHIVE_DIALOG_RELOAD = "Reload"
17+
ARCHIVE_DIALOG_EXIT = "Exit"
18+
ARCHIVE_DIALOG_PROCESSING = "Processing..."
1519
ARCHIVE_DIALOG_PROGRESS_SUMMARY = "Currently processing item {} from {}..."
1620
ARCHIVE_DIALOG_NO_ARCHIVE = "There is currently no opened archive."
17-
ARCHIVE_DIALOG_LOADED_ARCHIVE = "Opened archive:\n{}"
21+
ARCHIVE_DIALOG_FILE_MENU = "File"
1822
SDL2_INITIALIZATION_ERROR = "Couldn't initialize SDL2!\n\"{}\""
1923
MESSAGEBOX_ERROR_GENERIC_TITLE = "Error"
2024
MESSAGEBOX_WARNING_GENERIC_TITLE = "Warning"
2125
HITMAN_DIALOG_LOADING_ORIGINAL_RECORDS = "Loading the original records..."
2226
HITMAN_DIALOG_ERROR_UNKNOWN_FORMAT_IN_ARCHIVE = "Found an unknown format inside the archive!"
27+
HITMAN_DIALOG_ERROR_CORRUPTED_ORIGINAL_RECORDS_CACHE = "Original records cache corrupted for current archive! Trying to rebuild..."
2328
HITMAN_DIALOG_WARNING_IMPORT_LOADING_DATA = "Couldn't load the input data, skipping the import!"
2429
HITMAN_DIALOG_WARNING_IMPORT_DECODING_DATA = "Couldn't decode the input data, skipping the import!"
2530
HITMAN_DIALOG_WARNING_IMPORT_CREATING_NATIVE_DATA = "Couldn't create the native data, skipping the import!"
@@ -30,11 +35,21 @@ HITMAN_1_DIALOG_ERROR_MISSING_BIN = "Couldn't find the necessary *.bin file!"
3035
HITMAN_23_DIALOG_ERROR_MISSING_SCENES = "Couldn't find the necessary Scenes directory!"
3136
SETTINGS_DIALOG_TITLE = "Settings"
3237
SETTINGS_DIALOG_COMMON_GROUP = "Common"
38+
SETTINGS_DIALOG_HITMAN_RESET_RECORDS_CACHE = "Reset original records cache"
39+
SETTINGS_DIALOG_HITMAN1_GROUP = "Codename 47 Specific"
40+
SETTINGS_DIALOG_HITMAN23_GROUP = "Silent Assassin / Contracts Specific"
41+
SETTINGS_DIALOG_HITMAN4_GROUP = "Blood Money Specific"
42+
SETTINGS_DIALOG_HITMAN4_EXPORT_WITH_LIP_DATA = "Export LIP data block with sound data when available"
3343
SETTINGS_DIALOG_DISABLE_WARNINGS = "Disable warnings"
34-
SETTINGS_DIALOG_CHECK_DATA_ORIGINALITY = "Check the originality of the data in archive"
3544
SETTINGS_DIALOG_IMPORT_ORIGINAL_FILES = "Import the unchanged original files"
3645
SETTINGS_DIALOG_DIRECT_IMPORT = "Import the files directly without conversions (turning this OFF is experimental!)"
3746
SETTINGS_DIALOG_FIX_CHANNELS = "Fix the number of channels on import (turning this OFF is experimental!)"
3847
SETTINGS_DIALOG_FIX_SAMPLE_RATE = "Fix the sample rate on import (turning this OFF is experimental!)"
3948
SETTINGS_DIALOG_TRANSCODE_TO_ORIGINAL_FORMAT = "Transcode to the exact format of original game data on import"
49+
SETTINGS_DIALOG_TRANSCODE_TO_PLAYABLE_FORMAT = "Transcode to easily playable PCM format on export"
50+
SETTINGS_DIALOG_TRANSCODE_OGG_TO_PCM = "Transcode OGG files also to PCM format on export"
4051
SETTINGS_DIALOG_LANGUAGE = "Language"
52+
FILE_DIALOG_FILTER_ALL_SUPPORTED = "All Supported"
53+
FILE_DIALOG_FILTER_HITMAN1_SPEECH = "Codename 47 Speech"
54+
FILE_DIALOG_FILTER_HITMAN23_STREAMS = "Silent Assassin / Contracts Streams"
55+
FILE_DIALOG_FILTER_HITMAN4_STREAMS = "Blood Money Streams"

data/localization/Čeština.toml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,19 @@ ARCHIVE_DIALOG_SAVE = "Uložit"
1212
ARCHIVE_DIALOG_SAVE_INTO = "Uložit do"
1313
ARCHIVE_DIALOG_EXPORT_TO = "Rozbalit do"
1414
ARCHIVE_DIALOG_IMPORT_FROM = "Vložit z"
15+
ARCHIVE_DIALOG_CLOSE = "Zavřít"
16+
ARCHIVE_DIALOG_RELOAD = "Znovu načíst"
17+
ARCHIVE_DIALOG_EXIT = "Ukončit"
18+
ARCHIVE_DIALOG_PROCESSING = "Processing..."
1519
ARCHIVE_DIALOG_PROGRESS_SUMMARY = "Spracovávám položku {} z {}..."
1620
ARCHIVE_DIALOG_NO_ARCHIVE = "Momentálne není otevřen žáden archiv."
17-
ARCHIVE_DIALOG_LOADED_ARCHIVE = "Momentálne otevřen archiv:\n{}"
21+
ARCHIVE_DIALOG_FILE_MENU = "Soubor"
1822
SDL2_INITIALIZATION_ERROR = "Nepodařilo se inicializovat SDL2! Chyba: \"{}\""
1923
MESSAGEBOX_ERROR_GENERIC_TITLE = "Chyba"
2024
MESSAGEBOX_WARNING_GENERIC_TITLE = "Varování"
2125
HITMAN_DIALOG_LOADING_ORIGINAL_RECORDS = "Načítávám originální data..."
2226
HITMAN_DIALOG_ERROR_UNKNOWN_FORMAT_IN_ARCHIVE = "Neznámej formát souboru v archivu!"
27+
HITMAN_DIALOG_ERROR_CORRUPTED_ORIGINAL_RECORDS_CACHE = "Cache s originálními daty archivu je poškozená! Pokouším se data znovu vytvořit..."
2328
HITMAN_DIALOG_WARNING_IMPORT_LOADING_DATA = "Nepodařilo se načíst data, přeskakuji import!"
2429
HITMAN_DIALOG_WARNING_IMPORT_DECODING_DATA = "Nepodařilo se dekódovat data, přeskakuji import!"
2530
HITMAN_DIALOG_WARNING_IMPORT_CREATING_NATIVE_DATA = "Nepodařilo se vytvořit nativní data, přeskakuji import!"
@@ -30,11 +35,21 @@ HITMAN_1_DIALOG_ERROR_MISSING_BIN = "Nebyl nalezen nezbitný *.bin soubor s daty
3035
HITMAN_23_DIALOG_ERROR_MISSING_SCENES = "Nebyla nalezena nezbitná zložka Scenes!"
3136
SETTINGS_DIALOG_TITLE = "Nastavení"
3237
SETTINGS_DIALOG_COMMON_GROUP = "Pro všechny"
38+
SETTINGS_DIALOG_HITMAN_RESET_RECORDS_CACHE = "Smazat cache originálních záznamú"
39+
SETTINGS_DIALOG_HITMAN1_GROUP = "Specifické pro Codename 47"
40+
SETTINGS_DIALOG_HITMAN23_GROUP = "Specifické pro Silent Assassin / Contracts"
41+
SETTINGS_DIALOG_HITMAN4_GROUP = "Specifické pro Blood Money"
42+
SETTINGS_DIALOG_HITMAN4_EXPORT_WITH_LIP_DATA = "Exportovat se zvukovými daty také datový blok LIP (pokud je přítomný)"
3343
SETTINGS_DIALOG_DISABLE_WARNINGS = "Vypnout upozornění"
34-
SETTINGS_DIALOG_CHECK_DATA_ORIGINALITY = "Skontrolovat originalitu dat v archivu"
3544
SETTINGS_DIALOG_IMPORT_ORIGINAL_FILES = "Importovat i nezměnené originální soubory"
3645
SETTINGS_DIALOG_DIRECT_IMPORT = "Importovat soubory napřímo bez konverzií (vypnuti tohodle nastavení je experimentální!)"
3746
SETTINGS_DIALOG_FIX_CHANNELS = "Opravit počet kanálů při importu (vypnuti tohodle nastavení je experimentální!)"
3847
SETTINGS_DIALOG_FIX_SAMPLE_RATE = "Opravit vzorkovací frekvenci při importu (vypnuti tohodle nastavení je experimentální!)"
3948
SETTINGS_DIALOG_TRANSCODE_TO_ORIGINAL_FORMAT = "Převést při importu na originální formát"
49+
SETTINGS_DIALOG_TRANSCODE_TO_PLAYABLE_FORMAT = "Převést při exportu na lehce přehratelný PCM formát"
50+
SETTINGS_DIALOG_TRANSCODE_OGG_TO_PCM = "Převést při exportu také OGG soubory na PCM formát"
4051
SETTINGS_DIALOG_LANGUAGE = "Jazyk"
52+
FILE_DIALOG_FILTER_ALL_SUPPORTED = "Všechny podporované"
53+
FILE_DIALOG_FILTER_HITMAN1_SPEECH = "Codename 47 Speech"
54+
FILE_DIALOG_FILTER_HITMAN23_STREAMS = "Silent Assassin / Contracts Streams"
55+
FILE_DIALOG_FILTER_HITMAN4_STREAMS = "Blood Money Streams"

data/records/h1

-26.3 KB
Binary file not shown.

data/records/h1_1C01A5E5515E2754

26.5 KB
Binary file not shown.

data/records/h1_61B2F1AD80E53F37

26.3 KB
Binary file not shown.

data/records/h2

-347 KB
Binary file not shown.

data/records/h23_25E9CD9EE932330A

212 KB
Binary file not shown.

data/records/h23_4A998E2FFDB28762

212 KB
Binary file not shown.

0 commit comments

Comments
 (0)