Repository navigation
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
ConverterandArchiveinto 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
Transformerregistration (Transformer::add_transformer(Transformer *)).
- Removed
-
Changed
Converter,ImageandSoundso 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_decoderintoarc_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_internalanddecode_internalwere public 👍). -
Reorganized file structure:
io→io/iofile_io→io/file_iobuffered_io→io/buffered_iobit_reader→io/bit_readerfactory/*→formats/transformer_factoryformats/image→util/imageformats/sound→util/soundendian→util/endian
Thanks to this change
src/looks a lot less cluttered now. -
Pulled the internals from
bin/arc_unpacker.ccinto a newmain()-free class atarc_unpacker.ccso 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.