0.3
Visible changes
- Added initial basic support for TH13.5.
- Improved Touhou palette detection for TH7.5, TH10.5 and TH12.3.
- The project has just one binary now:
arc_unpacker
. - Output files appear in the current working directory instead near target files. (For drag'n'drop this doesn't make difference.)
- Instead of
archive.dat
→archive.dat~/*
, program now producesarchive~.dat/*
.
Major changes to project structure
-
Merged
Converter
andArchive
into common interface,Transformer
. -
Improved format-to-format integration:
- Removed
run_converters()
- it's now called behind the scenes. - Removed need for manual internal unpacking thanks to
Transformer::add_transformer(Archive *)
. - Generalized
Transformer
registration (Transformer::add_transformer(Transformer *)
).
- Removed
-
Changed
Converter
,Image
andSound
so that instead of updatingFile&
s, they create newstd::unique_ptr<File>
s from scratch (basing on given file name, so that they know how to change the file extension where applicable.) -
Merged
file_decoder
intoarc_unpacker
. The project has just one binary now:arc_unpacker
. -
Merged archive and converter factories into one
TransformerFactory
. -
Improved file naming management, covered with unit tests.
-
Improved method visibility (
unpack_internal
anddecode_internal
were public 👍). -
Reorganized file structure:
io
→io/io
file_io
→io/file_io
buffered_io
→io/buffered_io
bit_reader
→io/bit_reader
factory/*
→formats/transformer_factory
formats/image
→util/image
formats/sound
→util/sound
endian
→util/endian
Thanks to this change
src/
looks a lot less cluttered now. -
Pulled the internals from
bin/arc_unpacker.cc
into a newmain()
-free class atarc_unpacker.cc
so that it can be tested gracefully in unit tests. -
Added OpenSSL dependency because of TH13.5 and its RSA usage. If any more games use things like AES or whatnot, this should prove beneficial in the future.