Commit graph

16 commits

Author SHA1 Message Date
95fc6c160b
dtmt: Implement name overrides
All checks were successful
lint/clippy Checking for common mistakes and opportunities for code improvement
build/msvc Build for the target platform: msvc
build/linux Build for the target platform: linux
For most of the game files, we don't know the actual name, only the hash
of that name. To still allow building bundles that contain files with
that name (e.g. to override a game file with a custom one), there needs
to be a way to tell DTMT to name a file such that its hash is the same
as the one in the game.
The initial idea was to just expect the file name on disk to be the
hash, but that wouldn't allow for arbitrary folder structures anymore.

So instead, there is now a new, optional setting in `dtmt.cfg`, where
the modder can map a file path to an override name.
2024-07-18 09:50:48 +02:00
a47167b735
Fix printing hashes with leading zeroes
All checks were successful
lint/clippy Checking for common mistakes and opportunities for code improvement
build/msvc Build for the target platform: msvc
build/linux Build for the target platform: linux
Closes #179
2024-07-12 15:58:39 +02:00
96a7eeb1e0
Implement faster hex string parsing 2024-07-09 16:16:48 +02:00
a8db19cf9f
refactor: Capitalize error messages 2023-03-08 20:40:30 +01:00
09f357d72d
fix(sdk): Prevent duplicates in bundle database bundles
Ref #28.
2023-02-25 11:42:16 +01:00
e65579d8aa
feat(dtmm): Implement rudimentary mod deployment 2023-02-18 10:20:10 +01:00
036c20bd8c
feat(lib): Implement IdString type
This type is similar to an `Either` between a `Murmur64` hash and a
`String`. This is necessary to be able to retain hash information where
the hash is not in the dictionary, but at the same time allow string
names where they are available.

Up until now, when reading a bundle, all hashes would be converted to
strings, which made sense for displaying those names. But when writing
the same bundle back, those strings ended up being re-hashed, resulting
in incorrect hashes.
2023-02-17 22:51:46 +01:00
1d08498131
feat(dtmt): Add command to print the dictionary
This is mostly helpful to check/debug whether the internal dictionary
actually contains the expected data. For manually looking through the
entire dictionary, opening the CSV file is still more convenient.
2023-02-17 22:51:46 +01:00
5ce35f2014
refactor: Improve conversions between murmur hashes and primitives 2023-01-08 15:34:35 +01:00
20c0382c22
refactor: Make operations on binary data sync
There is no benefit from making all operations on binary data read
in small, async steps directly from the file.
Since we know file sizes beforehand, it's less complex to read
the entire data blob into memory once, then operate on that
synchronously.
2023-01-06 13:30:18 +01:00
2c34d98193
feat: Show status when adding dictionary entries 2023-01-01 18:54:09 +01:00
2219f4fab3
feat: Implement decompilation for strings file type 2022-12-28 18:30:11 +01:00
764d9c00f2
feat: Implement murmur hash command 2022-12-10 19:28:49 +01:00
78eb25368c
refactor: Apply clippy suggestions 2022-12-06 21:53:52 +01:00
905734019e
feat: Implement decompilation for package files 2022-11-25 16:17:35 +01:00
987a6ade9b
chore: Turn project structure into workspace 2022-11-18 10:44:01 +01:00