Commit graph

312 commits

Author SHA1 Message Date
df06182ca0
fix(sdk): Fix file header binary format
The file header format is a bit more complex than I first realized,
especially around when a path to `data/` is included, and which size
field determines its file name length.
2023-02-17 22:51:48 +01:00
110108004d
fix(dtmt): Fix dictionary lookup for all groups
Rather than checking all groups, when no cli flag was given, no groups
were checked.
2023-02-17 22:51:47 +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
9077d791b2
feat(sdk): Implement file properties 2023-02-17 22:51:45 +01:00
6b01511d22
refactor(main_window): Combine window size into one variable 2023-02-08 14:40:55 +01:00
073a91d788
bug(sdk): Fix type conversion recursion
The compiler doesn't complain about this, so I assumed it
was able to correctly resolve a conversion
`BundleFileType` -> `Murmur64` via their shared `From` impl: `u64`.

But it appears that is not the case, and the simple `t.into()` just
calls itself. So I need to do the conversion via the intermediary value
manually.
2023-02-08 14:40:54 +01:00
61b3a07666
feat(sdk): Implement bundle database handling 2023-02-08 14:40:51 +01:00
204ce1e163
feat(dtmm): Create initial mod manager window 2023-02-08 14:40:49 +01:00
9f84340b73
refactor: Extract Oodle into separate library
The library utilizes an internal global singleton to allow
using the functions without having to lug around an instance of
`libloading::Library`.
2023-02-08 14:33:47 +01:00
5eebced362
bug: Fix building 2023-01-17 11:09:02 +01:00
5ce35f2014
refactor: Improve conversions between murmur hashes and primitives 2023-01-08 15:34:35 +01:00
96c9da16de
bug: Fix package test 2023-01-08 15:33:53 +01:00
3b7abe02bf
feat: Implement command to create mod project from template 2023-01-07 21:53:56 +01:00
f61fab4257
feat: Implement building mod bundles 2023-01-07 21:27:26 +01:00
56bcbd8648
feat: Implement initial bundle building
For now, only empty bundles can be created, though.
2023-01-07 16:20:26 +01:00
0811f47ae2
bug: Fix reading bundle properties
Clippy's suggestion failed me, as `slice::take` only yields _at most_
the given number of elements, but `Vec::with_capacity` doesn't resize
in a way that it would yield `capacity` elements.
2023-01-07 16:19:01 +01:00
db7790ec5b
refactor: Properly handle unknown field 2023-01-06 18:55:55 +01:00
0441a0d932
feat: Recognize bundle properties
Ref: #3.
2023-01-06 18:54:33 +01:00
385e1f98e2
bug: Fix tracing spans not being entered 2023-01-06 13:32:58 +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
fddf8fcbbd
refactor: Remove synchronization for context parameter
The context is only written to during initial setup. After that
it is only ever read, so no synchronization is necessary.
2023-01-04 10:40:25 +01:00
96b29a3d2b
doc: Improve README wording 2023-01-01 23:47:53 +01:00
2c34d98193
feat: Show status when adding dictionary entries 2023-01-01 18:54:09 +01:00
61a80f71a7
docs: Add quick start information to README 2023-01-01 11:38:29 +01:00
95aa145569
version: v0.2.0 2022-12-28 19:59:10 +01:00
9806013d68
fix: Fix decompiling strings files with Unicode 2022-12-28 19:50:22 +01:00
3913684898
refactor: Apply clippy suggestion 2022-12-28 19:44:27 +01:00
c2ed9275b0
fix: Decompression doesn't work for some bundles
It seems that with the new bundle format, chunks are stored uncompressed
when their compressed size equals the chunk size.
2022-12-28 19:44:23 +01:00
2219f4fab3
feat: Implement decompilation for strings file type 2022-12-28 18:30:11 +01:00
5cc97959a5
feat: Improve error output during extraction 2022-12-28 18:29:26 +01:00
b8b4802cd9
version: dtmt v0.1.2 2022-12-28 18:29:09 +01:00
cfb73fbb00
version: sdk v0.1.2 2022-12-28 13:15:03 +01:00
97b824176f
refactor: Add a few spans for error reporting 2022-12-28 13:14:21 +01:00
1c27224221
feat: Implement new bundle format 2022-12-28 13:10:54 +01:00
aa9277c394
version: v0.1.1 2022-12-11 12:11:59 +01:00
be1ce0dcf0
refactor: Apply clippy suggestions 2022-12-11 12:10:02 +01:00
f94a8c8731
feat: Handle file variants 2022-12-11 12:09:31 +01:00
764d9c00f2
feat: Implement murmur hash command 2022-12-10 19:28:49 +01:00
a4c6ba731a
feat: Add config file 2022-12-10 17:12:23 +01:00
28aacf9d58
refactor: Apply clippy suggestions 2022-12-10 12:43:36 +01:00
87bfcf68cb
chore: Disable unimplemented commands 2022-12-10 12:43:06 +01:00
4a834b1687
Merge branch 'issue/1'
* issue/1:
  fix: Fix running out of file handles
2022-12-10 12:38:56 +01:00
a76ea165ac
fix: Fix running out of file handles
Fixes #1.
2022-12-10 12:37:35 +01:00
4ac9c88dfc
bug: Fix synchronous binary operations 2022-12-09 23:33:44 +01:00
d1ff738098
feat: Add synchronous binary reading utilities 2022-12-09 10:14:31 +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
d500b01709
feat: Implement bundle writing and file injecting 2022-11-16 09:36:46 +01:00