Renamed archive_tools to serialization_tools to account for module renaming
fixed relative import for tests
Updated pytest CI to build package and test against that instead of testing against code
Version primed for 2022.0-rc0 ([`eb285be`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/eb285be28b70652dc63489545369d1c0c3839d8c))
* Update pytest.yml ([`4f666ce`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/4f666cee37dfb31dc772587fc702a8e317445498))
* PyTest against package instead of code ([`73ff923`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/73ff9234dcea82704a5eec07ab628f216b0bff93))
* Merge branch &39;rename-archive2serialization-tools&39; of https://github.com/ModernMAK/Relic-Game-Tool into rename-archive2serialization-tools ([`b821df5`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/b821df5f23505afa98cc28fb7b327af662878a75))
* Use absolute import for `tests.helpers` ([`ee75122`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ee75122575c96d94abe1e98f10fa03460336c721))
* Merge branch &39;main&39; into rename-archive2serialization-tools ([`19c769f`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/19c769ff5a9b92934d7011685d4c516b1e4b39e2))
* Mak Serialization Tools doesn&39;t support < Py 3.9
No longer test against 3.7 / 3.8 ([`2cb2a6e`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/2cb2a6e9ff2ea179f4f87c260f62fbc18efa3c89))
* Include Py 3.10 in tests ([`6859582`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/685958295345682852bde23498935338defc12ee))
* Restrict Requirements / Update Version ([`7897841`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/7897841a84baf1600b7471c0b7f0a85e0c0fa787))
* archive_tools -> serializaiton_tools
I&39;m a genius;
create archive_tools.py src level
refactor/rename archive_tools.py => serialization_tools.py
delete serializaiton_tools.py
boom, all package imports are renamed :D ([`9caad89`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9caad89c6b319d72051b61b5ad9658cdb50283ba))
* Merge branch &39;indev&39; ([`f65a07d`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f65a07d6ad744b5ca5407b36fedf64f19502ead8))
* Update readme and setup config ([`3b9c734`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/3b9c734e9f61295615d8b07f40c503ef2117c1f7))
* Increase version, change req, update name ([`54cf28a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/54cf28ab76c116bd9724c9a093d560e7db52e139))
* Create README.md ([`627579f`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/627579f0ad838825c3da3cc02573a99e19a91d73))
* Include enc.exe/dec.exe ([`6996616`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/69966165ad935abb61c4d65a898ceb966d86dbab))
* Formatting, added missing __init__.py, ([`f27b8f7`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f27b8f760fecb1486bb8910b255966072fab460c))
* Create LICENSE.txt ([`0284fa1`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/0284fa1c5e82d151d38ea6baa71a1755fa5b756e))
* Reorg WHM and meshdata.json support for animations
With no tests we aren&39;t stable yet, but the rewrite is more or less done
WH3, I haven&39;t fixed yet, mostly because I didn&39;t want to install it and dump it&39;s sgas until I felt done with Dow I and Dow II. ([`033fa80`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/033fa80d710ef11f01062b4c323c355250113c02))
* Animation support maybe, also trailing data is 3 buffers
Probably a secondary pos buffer (12/4=3), but idk on the other two (24/4=6), (40/4=10)
Maybe Uvs?
Float4, Float2 and Float4, Float4, Float2?
Float3, Float3, could also work for 2nd buffer
Obviously alot of ways to unpack the 3rd buffer; worry about that later ([`00bd6fd`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/00bd6fd8acb1563a27429a289e9d2faf8ef82d95))
* Update model.py
Dropped comments; while useful when I was prototyping, it&39;s making the file a chore to skim through ([`67cf3c9`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/67cf3c92ff0ae685d127849a79037408c029ccbf))
* Dow 2 Model ([`9b2debb`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9b2debb54beb4d0176751c05b99ecfcf5b20802b))
* Update wavefront_obj.py
Fix normal/uv swapped ([`47aff64`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/47aff642c86f29ce33ab804a5d47e1e9f389c2e2))
* general obj fixed ([`e6223a2`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/e6223a2d0b9c2a0f1a8c0a93f3b12ec71d2810d3))
* Massive overhaul for model ([`d44a6d2`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d44a6d2a0206f1e55618ac894cee313b47f11202))
* Model and refactoring ([`5c464b4`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/5c464b44d7faf35367280536eac79696c439b3b0))
* Update importer_blender30.py ([`22a8489`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/22a8489c7fff93a9a25139ff86cb94d76ea60397))
* Rename SelfIdentifying to ChunkDescription & some minor WHM notes ([`8c32783`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8c3278364fd2656b3a01e2b988dd5fa31e4f78c2))
* Update importer_blender30.py ([`a82a0eb`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a82a0eb3678a4479b97d2ac55ee1ef7ced9896fe))
* UVs, Materials, proper rotation & placement for verts
Bones still look wonky at times, and not all bones are used everywhere
Marauder seems to lack any bones ([`7fbcb68`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/7fbcb68f541abb785a8ffb6a35f57817c6b36d5b))
* More Importer features ([`b6fc68f`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/b6fc68f4a90ccaf0c4ba6fd7b20e8fea4a9e04b6))
* sga unpack / blender importer ([`914fbf3`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/914fbf30c73db62a28f5e8d0acd07d3505e028e5))
* Prettify bone creation ([`dc936ad`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/dc936ad52ab0c91733918530c7018128f8fa26d5))
* Extractors ([`798ae65`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/798ae65370bb22ac05fdce874beb75ae1c48e9dd))
* Removed redundant scripts
Scripts which now reside in the universal script are removed to avoid duping
The matching script file in the universal hierarchy SHOULD implement the same behavior if running as main. ([`9a2c3af`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9a2c3afd3225cb41de4cc89fceb212d65c553417))
* universal script
While a long master script doesn&39;t sound too good; flooding the namespace with dump, extract, and others doesn&39;t sound too good either ([`3968556`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/3968556176079b27efa8d052a6e1c084cb76a2f6))
* Working Blender script
working-ish...
Bones work perfectly;
but I haven&39;t figure out how to convert them properly to blender-space
So the bones can deform the mesh properly, but the bones aren&39;t in the proper locations
Also some meshes lack boneweights but have skeletons? May be stored in excess? But bones is empty in mesh header? ([`327409a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/327409a6cdb7d8e0afdc389b67c609a9abd6e018))
* blender script works for verts, no bones yet ([`98e8bfa`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/98e8bfab7637e99cfe2aa90c6756bc66b5c0cc7e))
* Found Bone Weights!
I didn&39;t understand that 16 byte section for some meshes, since it looked like floats, but the 4th &39;float&39; was garbage
While debugging missing meshes in my mesh_json script, I accidentally noticed the 4&39;th float had 0x4/0x5 which matched the ids referenced in the header names. On top of that; those ids and names match names in the skel chunk.
BOOM
Mystery solved ([`8ad195f`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8ad195fe2d48574b7fc58664300e1d0d5488b423))
* Scripts for whm2obj, rtx/wtp/rsh 2img ([`ebd17f4`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ebd17f4082226e0dee0be5a716f59384c4757d27))
* Fixed width/height swap bug
ATTR was swapping width and height; which wasn&39;t noticeable for most pow2 textures.
Because order is important, we unpack in the proper order inside convert and use kwargs to set the data class fields. This will allow the dataclass fields to be reordered without accidentally altering data. ([`b0370f8`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/b0370f830fccf112d40cad8bf3c0e392e5059785))
* Pos,Norm,Uv buffers cracked on WHM?
I&39;ve had this before, but if I recall correctly, it failed on select files.
While I haven&39;t validated anything by dumping to obj and importing into Blender, not crashing is a pretty good first step.
Also version went back to year.patch-staging, because it&39;s really dumb for me to have year.month.date.patch-staging
Fixed TxtrChunk not copying header, and made it SelfIdentifying
Fixed audio_converter not correctly pointing to the converter exes
Convertable now uses List instead of Iterable, and added support for sub_factories (although it shouldn&39;t ever be needed, since most convert functions don&39;t know about the converter) ([`dbded11`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/dbded1163290cc783397ba16e11aabb63baf6290))
* Packagable ([`f809c8f`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f809c8f7bb1b8794fa6acc8b12c5e6f20f0e9377))
* Simple implimentation for all DowI chunkies & archives + FDA dump script ([`2ac9803`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/2ac980372cc0bc0a4374b71e17ba9b86cbd570b6))
* Formatting and dropping commented code/repeated files ([`802eae8`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/802eae88e999fa549de1164c8dddd9ab32b48e76))
* Added RTX, broke WHM
Some wtp and rtx files are 100% broke; not sure if it&39;s my fault or not...
Should probably try running my unpacker against another unpacking tool and see if we get differing results ([`36cd1b4`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/36cd1b4a2937bf85fb7eb4c8674831744f456ae3))
* More WHM support ([`c4734b2`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/c4734b277a790a108c03870ab0529c00f8f1fefa))
* Almost There
Using ineritance to represent different versions
Most everything is done (for DowI, some errors may be present for DowII and DowIII)
Currently still rewriting relic-chunky cnonversions
Later some changes to serialization/deserialization for SGA might make some references non-circular
Also if it wasn&39;t obvious, pretty much every test-case broke ([`05be19b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/05be19b8656263114b68893770cafea4d731a8ad))
* general commit
Going to start doing a rewrite, there&39;s just too much bad rn ([`41c0a37`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/41c0a37ca35ddcf2964a8bf256c8e33050403d46))
* Massive Reorg
Not a full valid commit, who could have guessed that restructuring a complicated project would take a while and be wonky ([`fcc79cd`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/fcc79cd51a15621aa4a265d90d603e9fbd7f2bda))
* Fix Ucs failing when line was not read ([`4db1321`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/4db1321c3f5ebf8bd29d6d79850f89eeb7751e60))
* Tests now use archive_tools to unpack/pack stream
Also some general formatting
Also consider renaming structx.Struct to just StructX
On one hand it&39;s nice to autograb Struct from either, BUT, it also feels kinda money-patchy
Better to use StructX anyways to make it obvious what&39;s being used ([`ccca7bb`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ccca7bbd5c9d2bbe0b57c56f9a7ee47ba8c51589))
* RGT bashing
First step to extracting RGTs ([`eede178`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/eede1781ce320937db047c48f34ecb726bbaf86d))
* Disable dump_model &39;dev_mode&39;
Preferably I&39;d do the smart thing and print out the stacktrace instead of raising the error (which closes the terminal)
But until i do that I&39;ll keep hardcoding the sys-arg so I can test it in python
Alternatively, I could probably edit my IDEs runner so that the first arg is the path ([`67a4d8d`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/67a4d8d3f6de3f1802162726be8a76a8734c4a3d))
* Merge branch &39;testing&39; into indev ([`64edf6a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/64edf6a919211cbeb5ce9481a2a3b04ad4ac46ed))
* Dow3 Model Support, Dumping Chunky Folder meta files ([`1d0553d`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/1d0553d8796005b5caea04d4ac8f735398b50d4b))
* Merge pull request 2 from ModernMAK/testing
Archive & Chunky Tests ([`bceae22`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/bceae22fb6734637a4d966f31070546a5ab3e431))
* Fix create/convert naming
Didn&39;t I already do this? ([`d2b0e2b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d2b0e2bb99a0bc2f535f9b1d46312f0f82346fcd))
* Relic Chunky Tests ([`9464a7e`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9464a7ef8c960e5ef57c6a2f79ab5b2cabcb1e41))
* Archive Test Support for Dow2/3
Assuming my test&39;s aren&39;t faulty, I can successfully unpack and repack most archives. ([`8949c47`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8949c47fb9c7805428bac7222071b5dd573fbeaa))
* Merge pull request 1 from ModernMAK/testing
Merge Testing into Main ([`0ba2c1b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/0ba2c1bac6dbdf96d7eb7ce2565dccb6120e242c))
* Update and rename main.yml to pytest.yml
Now runs on pushes to main and pr&39;s to main; now I don&39;t have to do wierd things like push to testing then to main
This also makes it so that testing can be used to add/remove tests instead of apply experimental features. ([`95e7861`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/95e78612fb9669892d771126fa38fd881e73cba4))
* Still trying to get pytest to work in actions
If I was doing this properly and just made a setup.py I wouldn&39;t have to worry about this ([`0f9e735`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/0f9e735c778531beae9315aed2dbb8a54e4d1fea))
* Merge branch &39;testing&39; of https://github.com/ModernMAK/Relic-SGA-Archive-Tool into testing ([`bf47eee`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/bf47eee64ff4e7ea88b51e7dcb39b5f4019d791c))
* Create conftest.py ([`462d80a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/462d80ad69c62c59308e567da263a351d350becc))
* Update main.yml ([`371de54`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/371de5461eeade5ba3dcd02e4b6880ed4d96bab3))
* Merge branch &39;testing&39; of https://github.com/ModernMAK/Relic-SGA-Archive-Tool into testing ([`9ef98ce`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9ef98cea6c7e69eea52f98898eb875469d95f38f))
* Create conftest.py ([`1d66a8b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/1d66a8b1e3008b55c6c06f56a6bec867cc2db128))
* Update main.yml
Slash Fix? Ubuntu might be picky on slash type ([`ef7dca8`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ef7dca8452ef22368252e8e92ad69d8bd4d77c96))
* Hack to use both \src and \tests ([`ca11fe1`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ca11fe1fca877f682cccb35330c7957ebfbf5ebc))
* Update main.yml ([`5f219a4`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/5f219a42f39eb7b02a91b4ec90c56e42dd8adc16))
* Create main.yml ([`f09e2cc`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f09e2ccdb687ccd44bbd258ef8f345dd064f2158))
* Bugfix getting root folder from tests\helper.py + writer for sample data ([`a75ed0f`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a75ed0fe06c90a6fddd6691a8642dc6e985e5f55))
* Ability To Repack an SGA (Poorly, but still) & an SGA Test class
With this I can start testing SGA Unpacking into chunks without infringing on Relic&39;s Copyright by distributing their SGA files, HOORAY.
This isn&39;t perfect, and should NOT be expected to work for creating archives from scratch for the DoW games. ([`5afe267`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/5afe2679cf2b83eacbc24311d6e00a7283839b82))
* Merge branch &39;repacking-archive&39; into testing ([`83fab9d`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/83fab9d85c2c93202a9a0f548357fffdb49bb870))
* Fix dumper &39;convert&39;/&39;create&39; misnaming ([`3c402ab`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/3c402ab5ea16fbf7ab8f365c6f03dc5ba802cf3a))
* Writer complete; time to test it ([`d0c0e9b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d0c0e9b546ccc383e397a48557d4b0377038058d))
* Repacking Archive
I really want to start having automated tests; but I also don&39;t want to tread any further on the DoW IP. So by creating a system to repack Archives, I can build an archive in code, and unpack/repack to my hearts content. ([`d8ac8b9`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d8ac8b9688a7ae258f4dce2e009c7c01be259911))
* Fix Version Bugs
Verion-Like Enums now use a base-class: VersionEnum, to allow for Version to impicitly compare values.
Version is now hashable (so it can be used in lookup)
Version now correctly performs equality (and no longer raises NotImplimentedErrors) ([`d8332e5`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d8332e5181d967e0ba4f136104a73d014777ee58))
* MODEL Chunky + Tool work
Began work on &39;Dump Model.py&39; to dump Dow 1 & 2 Models from a .whm or .model file (Dow 3 will follow suit after I figure out that format)
Added MODEL Chunky support (DOW 2). SKEL unsupported (admittedly, I don&39;t want to bash my head against another heiarchal nightmare) and MESH partially supported. I assume Vertex count does change; but my code does not. Also; meshes which use shader&39;s I haven&39;t peeked at will not dump, I may change this in the future.
MODEL supports writing to OBJ/MTL file; via writer.py in Dow2\Model module
Chunk Collection now has helpers to simplify chunk conversion (get_data/folder_chunk/chunks)
MTL Writer now supports a bunch of 3rd party settings
In other news, my biggest regret is somehow letting PyCharm not auto-fix the chunk_formats when I moved them to Dow. I keep running into compilation errors because of it, and it makes debugging the &39;tool&39; that much harder.
In another strike against PyCharm; &39;name&39; may have been refactored into &39;material_name&39; where it should not have. ([`914ca43`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/914ca431b8fafe835c6604590d30672232d27fce))
* Made Version Reusable + Tool to dump Chunkies to Bin
dump_chunky is supposed to end up as a cmd-line pipable/drag-n-dropable tool currently, only supports Drag-n-Drop.
Version was moved to shared so that both SGA and Relic Chunkies could use it. Constants were moved to appropriate folders in each. An enum would be best but I couldn&39;t decide on a suitable naming scheme (since I cant do 9.0 or 3.1). May consider using enum for SGA (since SgaVersion.Dow, SgaVersion.Dow2, SgaVersion.Dow3 makes sense) ([`531c506`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/531c506ce325cc0b923d1deae9dc8601096cd7ff))
* Bugfix for V9 unknown bytes & import fixes ([`defde35`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/defde35645529022d426cddf2ea1dedd4a16bac7))
* Refactoring SGA
Keeping modules self-contained-ish
shared is now a catch-all for tiny classes which are used elsewhere
Headers are not seperated from their full versions (except for the archive_header, since that has several parts). Sparse Archive did get merged into the main archive file though. ([`4f0a64c`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/4f0a64ce6f2aed8a2d9bc87dd780ac172dec380a))
* DOW 3 Support
No Chunkies, but dumping the SGA works ([`9f1ef6c`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9f1ef6c9dad524a64f2570a65a20f39ac67c4459))
* Merge branch &39;indev&39; into DOW-2 ([`c90dbb5`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/c90dbb5f9237c4cedafcbc633b26a057283c2a76))
* Description => Virtual Drive
Renaming ([`5994949`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/5994949780d8d2a3b3c1f81130b48ecb4618fde7))
* Support for DOW2 Archives (SGAv5) ([`99131e7`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/99131e78ae03559905346bb6d06dfda73e654563))
* Attempt Euler Angles ([`3165851`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/31658517d0aab18cad96628e3b35b3f21a7e48a6))
* V3 Failure
Day 3 of Insanity; The numbers speak to me...
Joke&39;s aside; bashing my head against this just isn&39;t working.
I&39;t partially works: most bones look right.
Some bones just don&39;t and I can&39;t tell if it&39;s my data parsing, coordinate system mismatch, misapplying matrix calculations; what have you. ([`e8fe1fa`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/e8fe1fa72f3e3533b950dcd0399f8f0df2e22e9f))
* Layout has been validated (cooraoborated may be better term)
A script to import WHM into 3dsMax confirms my thoughts that the layout is pos(XYZ ), quaternion(XYZW).
But the script also shows that it uses local transforms?
Skeleton was fairly close to being correct; and this avenue was a complete bust (unless I missed something)
I&39;ll take the win of confirming my thoughts on the layout ([`75b29ea`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/75b29ea164e5fdfb048a3ca313169987f0fb1515))
* QOL made whm a module (to avoid imports from individual files) ([`e2b7a75`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/e2b7a7507dff483d217b3a17974b946ccaff92ce))
* Reorg ([`850e0c9`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/850e0c9cc85be53ed46a0ecafbfe4573feca20c9))
* QOL condensing modules ([`8ec9450`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8ec9450588c107d84d7869bc9bb3b6f9d0e7aa4b))
* Some work on SKEL
SKEL blocks contain 7 floats
I believe it&39;s a Float3 Position and a Float4 XYZW Quaternion
The positions appear to be relative to the prevoius bone ([`8e6e59d`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8e6e59d5b432aefb8b2164b3a083d960ed292b47))
* WHM fully implimented
WHM should be able to be completely unpacked into it&39;s specific chunk layouts.
Some work on deciphering SKEL may be included in this commit. This is not intentional. ([`d2ea260`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d2ea260b7d13c7d6fc85ef49fac4340cc4c01eb5))
* Update Scan Compression Flag.py ([`12dd580`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/12dd58019682c8362864f1b32d3e6dddce107ca9))
* Writer Code Cleanup
Github Desktop Split Beta Bug? These changes were selected in the last commit but didn&39;t go through? ([`f782f31`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f782f31e79e61a9a8d2da35a9f3fdc4805c119f7))
* Normals Work
So blender 2.9 correctly uses Face Windings and 2.8 does not is the takeaway I got from this.
Blender 2.9 was correctly showing me lighting, but because the face-winding was wrong, I assumed it was wrong too; since 2.8 looked fine. ([`010b25e`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/010b25efce95bb9e73606e34ec016d9dc8de911a))
* Formatting ([`53c71df`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/53c71dfd4c39d23783325338e061e28ffee12994))
* Fix normals not being flipped for flipped model. Changed directory helpers in config
Config now has filter_ and get_ to make it easier to get the latest installation. ([`9b83c39`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9b83c390eecef830130a395c02b593613e5ba889))
* Fix WHM dumping
This flips the X axis; which should correct text being incorrectly displayed in the material.
We also manually specify the extension for our temp file&39;s input; since TexConv will throw an error if it reads a TGA without an extension ([`cf06629`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/cf06629c05ba89a7a159ab1e169727eecce58da7))
* Added option to force MTL filename&39;s to be valid. Fixed TexConv not using converted file.
I forgot TexConv auto-adds the extension of the new file; great for everycase except this one. So I need to get the new_ext file somehow. I could do a scan and find the file with an ext. but I just hack it to a lookup table.
MTL&39;s texture paths cannot contain spaces; which sucks. (They don&39;t follow the double-quotes rule; I already checked). So if you want it to autograb your textures, you need to force them to be valid first. ([`38ccfd0`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/38ccfd03e29b7902434525016f55f85924262d46))
* Somehow broke OBJ writer again
Lovely; time to examine commits ([`c9a09c4`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/c9a09c434c4f20aeb28088fc93098a8fe4903958))
* Fixed Dumper include_meta
Previously was using file_path (which has been dropped) instead of output_path ([`e61e41c`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/e61e41ca06c963fcf35ebfcaf1f1d64fe0b5b84d))
* Update relic_chunky_header.py
type_br now correctly uses &39;\x1a (26 ~ &39;Sub&39;)&39;
Apparently, some OSs use this as a line break; so type_br is a &39;catch-all&39; linebreak? ([`ca22812`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ca22812a703f2b57561755751d4d31e8c82c7c35))
* WTP uses ImagConverter & error handling for empty name in localisation search ([`1eea6c9`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/1eea6c9428bb4839420b09cfb2586cf01c0d2c48))
* Fixed case where &39;b&39; invalidates a localisation string
see src\relic\ucs.py ([`a5222b1`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a5222b1da318c0155a4995aa07ff5ce3134f646a))
* Universal Dumper
+ A lot of changes to make it work, mainly changes with error handling ([`bbb66c3`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/bbb66c3ed62d68950658a6c9b65538efe64281f0))
* Config now properly uses WinReg to get steam dir
Added a helper function to get unique DOW game directories
Added a helper function to get the latest DOW game directory
Added an enum to classify the game without scanning the path
Fixed the dll_path in config (was not reaching src directory) ([`6628c9b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/6628c9bebe2af096548134c5e040510d12815a7e))
* Dumping, Config, Converters
Master dumper file for chunks in chunk_formats
FdaConverter has more use cases
RSH dumper now has a converter to write Imag files better
WHM chunky failures now use UnimplimentesMslcBlockFormat, which inherits NotImplimentedError for compatability. Allows specifically catching this error (as opposed to the generic valueerror/keyerror/unimplimentederror handlers
WHM writer has more generalized use case
Chunk colection walk now acts similiarly to os.walk
First steps to using config ([`8bd1534`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8bd15345aa6698bd3a53cc53b83c9636c2fede6b))
* Folder uses file path name; walk should now correctly express paths ([`b2d4e37`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/b2d4e378fe4293713a26d5d216b5ba956fede61c))
* Forgot to actually fix the heiarchy in Archive
Also some fixes that I forgot to commit ([`381fc5b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/381fc5b31f6f1066072960d454021731a5955278))
* Fixed archive not using Abstract Directory + SGA Dumper ([`38d06bc`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/38d06bc0517f6bfbcfb5b01256ae7f3f1f6b35dc))
* Archive Walking & starting files for unsupported formats ([`db03457`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/db034578f5759acb2a61bed327425750722fabb6))
* Walk improvements + Script to scan all sga&39;s for nested unsuported chunky files ([`a333ea7`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a333ea7486edc4104a7868e20416a56fd84a9f63))
* Formatting and walk changes ([`3275019`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/32750198d415b475b20edae17d0ab12ee8528ea2))
* Create archive.sga
Sample archive.sga (not filled in yet)
Need to generate a blank SGA ([`7a1e57a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/7a1e57a70ee3a0e69a6defda534f43e3049e42c0))
* init tests ([`15c8c90`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/15c8c901ca5c40a9322660529bb5930f9bc641f6))
* Repack methods ([`a5fbf76`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a5fbf76cfbc0dd40a6d3a45496addff3f861de38))
* Refactored archive, dropped &39;flat&39; classes ([`56f69a5`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/56f69a507406263b5349ac7314e126d83fe75acf))
* Lots of refactoring
Next up; do what I did to RelicChunky to SGA ([`dda13ed`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/dda13edcb4ef6476370bc7edf2c222f0f5102d19))
* Relic Chunky now can check for the Magic Word indipendently, and a walk function has been added to filter walk results ([`8aed6ad`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8aed6add173a3178548fdd4e3aa31118447a55e3))
* organizing ([`723c04c`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/723c04c734f8ccc51cadda05291ba1f9b78b6ebe))
* Merge branch &39;main&39; of https://github.com/ModernMAK/Dawn-Of-War-I into main ([`c9747f2`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/c9747f21ebf93423785db71febdee8844ff56f1e))
* Merge branch &39;main&39; of https://github.com/ModernMAK/Dawn-Of-War-I into main ([`1729f25`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/1729f25a425b12112e72433ac93424b039f086dd))
* UCS parser
This isn&39;t in an archive, and is a super stupid simple file; which is exactly why I cranked out a script to extract it ([`dc948fa`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/dc948fa5e47ab3416a0994b442f36bd874f3714d))
* Merge branch &39;main&39; of https://github.com/ModernMAK/Dawn-Of-War-I into main ([`be7087b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/be7087b031a4f7392424cc8841d70e6b5799bcc0))
* Added assertions to Mesh_IO
Specifically to float reads, NAN for a position, normal, or UV is a sign of a bad parsing.
This will also work with my -funky relocator so wierd WHMs getm oved to the funky folder ([`cacfa98`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/cacfa98ac4df3ac55f3987a7e8c4856f2e7dc0f4))
* Update requirements.txt ([`f8cb16d`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f8cb16d5d65cc810c6312ec9db561332160643d9))
* Create Blender Obj2Fbx.py
Blender script to convert obj to fbx ([`8b5b107`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8b5b107f848da1e821b2c6de0285f7a59002de0f))
* Fixed illum mode + Basic Transparency in Blender
Since Unity pulls an OBJ as a big file instead of submeshes, I wanted it working in blender, so I can import, convert, then export it again.
In the future, when I crack SKEL, I will not use OBJ anyways, and this will be a moot point aside from an alternative model format. ([`7334941`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/7334941a37124bc2b58e33ec625034c8caed9617))
* WHM materials work
I&39;d prefer to not copy textures over into the WHM dump directory, so I specify the RHS directory instead.
I know understand why obj files use 1/1/1 2/2/2 3/3/3 etc
Frankly, I&39;m surprised it doesn&39;t assume vn and vt use the same index, but i bet it&39;s because the specification doesn&39;t OR its a parser thing. ([`cb06681`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/cb066815d09d02c14ffaffc48575a0f6a8aec0b7))
* Divvying up WHM to make it easier to look through ([`36017a9`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/36017a99fc109a4a12d8886f1d5d7edd3332f62b))
* Added a MTL writer
Currently we don&39;t create a mtl to match the obj file created. With this, we can. ([`9e2a700`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9e2a700257e8d4ffde24b6ca64b1c5417efcbb1e))
* Update config.py ([`f1f3883`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f1f3883c2e30147b5eb47b77051cfa15667f5c6c))
* relic.chunky now exposes most common classes in a single module (the relic.chunky module) ([`495fc71`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/495fc7106dd1d979099591e5fa9148e55cd3e8c6))
* Fixing up TeamTex Dump
A lot of TLC to make it reusable.
SGA&39;s also got cleaned
Added a config py file, was planning on using it to manage dump paths, but I&39;ll probably use it as a way of automatically fetching the steam directories to dump. ([`8122382`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8122382ed7d1410940530e482a6b7d4978ed5a27))
* Dropped aifc2fda & fda2aifc
Probably shouldn&39;t have included those in the first place, non-vital and my dumps didn&39;t work properly (or I wasn&39;t using it right). ([`a535672`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a5356721afed5c3f6de5a371f1f0bb172ef05a3b))
* Doing some cleanup ([`d14d0a7`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/d14d0a71401cc36a6d6250c547459edd185ff893))
* Fixed .layer => .unk_a
Could have sworn I fixed this already. Did it get reverted? ([`9396a7b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/9396a7b03d601a27b2d2a8042cf99425cc0befa0))
* WHM cleanup done ~ dump working for most meshes
I haven&39;t checked materials working, but importing the full models correctly
Later, when I try to dump skeleton data, I&39;ll like stop supporting OBJ (since it can&39;t handle skeletons), but with any luck, the obj exporeter will still work. ([`2327ccd`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/2327ccd7f58956f0005a645abff755b065f8a5ee))
* Spltting OBJ file stuff from whm & stripping whm comments for now
whm is kinda bulky with all my attempts, some TLC will help me read it better ([`7366f91`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/7366f9178b8b4647715f81a29cbfed7f2920ff29))
* Fixed dump_model when full=True
I had to import each part in blender first to validated that I&39;d correctly dumped them.
After doing that, (and setting v_offset to 0 for a full dump, i&39;d realized I was doing v_offset += v_offset+v_count (count of vertex in part) instead of v_offset += v_count or v_offset = v_offset+v_count ([`08c61b6`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/08c61b6e725f244059ccf3862a60e4f4bce7752a))
* whm still a mystery ([`3d4db4e`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/3d4db4eeb22886212ce48cb85c43361f9a3a7778))
* Merge branch &39;chunky-cleanup&39; into temp ([`984054a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/984054a34e1936665961b524a291a0653bd56c68))
* Moved whm ([`62cff3a`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/62cff3a6f3e2d3339d8bda15e5d983a3814d230b))
* Confirmed Speed Up
22 vs 415+ seconds, (most of that time was due to file open/writes/closes, but still) ([`2801ef5`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/2801ef50e7bd7bc0a67159712a1df8ce068e98f3))
* Fix walks in chunk_collection
Due to an indent error; alot of extra cycles were being done, which likely caused the slowdowns I was seeing ([`63a7025`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/63a7025691112c16e9174e5cd1da32cc93f0070c))
* Chunky moved to seperate files
I dislike big modules, probably due to my C background; unlike my EG2 mess, chunky only needed Data & Folder formats, so I could use a locally imported &39;reader&39; file to store the logic shared between them. ([`3f90650`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/3f90650fbf513840573893e8e9700efb4694da9d))
* Still haven&39;t cracked the WHM format ([`be9b1d6`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/be9b1d6f2e69bed2c4eab50b71390c48a0dbe3fa))
* Update whm.py ([`963b776`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/963b7766b0a7ae83c5a3747ec2362b05513087ec))
* Fixes errors from refactoring
Makes ChunkType an enum,
FDA uses proper get_chunk method
DGA&39;s reverted unk_a refactoring into layer (due to both InfoChunks being named the same?) ([`a72e84c`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a72e84cc11d50c665686974a2536979d6809fc8c))
* Revert &34;Model Prototyping&34;
This reverts commit 8dcfdf72009b7c2b293fbc06ac0d47bc5cc691e4. ([`7250d64`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/7250d64eda2a762e112a51a69e576e5b2f27abb0))
* Model Prototyping
Still don&39;t know the model file&39;s layout.
What I do know:
Layout doesn&39;t include padding to 16 byte boundaries (positions are 12 bytes)
Buffer is not interleaved (pos, normal, and uv are all grouped)
Most meshes are 32 or 48 bytes, others are weird like 87.5 bytes
32 vertex size is Position:Float3, Normal:Float3, Uv:Float2
48 vertex size is Position:Float3, Unknown:Float4, Normal:Float3, Uv:Float2
87.5... no idea ([`8dcfdf7`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8dcfdf72009b7c2b293fbc06ac0d47bc5cc691e4))
* wtp improvements ([`dc715db`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/dc715db6be9a6ddaae7d9adc0a31bfeb8e3bdf83))
* DDS Fix via DirectXTex (texconv)
A simple subprocess cmd which safely flips images vertically; my previous implimentation using PIL didn&39;t work (perfectly), I imagine due to the limited support PIL has for dds. ([`8574e01`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8574e01ee8e0249636a86345a2abe1fba99cd5c8))
* mslc_chunk &39;unk_b&39; possible buffer format & WTP support
While dumping all obj files I found that some files failed (due to running out of data to read) so I checked the vertex buffer and sur enough, the size per vertex was different (calculated by dividing the buffer via the vertex count)
The only noticible change between the two being unk_b (other fields changed but too inconsistant to be meaningful)
While I haven&39;t proven it yet, this change fixed most issues (still some ascii decode issues? and some unpacking issues, hopefully unrelated) ([`8e5889b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/8e5889bbeb593fb023764c84f90386807d85309f))
* Texture ripper works
On all files I have from soulstorm anyways
IMAGES.py simply copies all raw images from A to B
rsh.py handles textures in rsh archives
Since these are not the teamable textures, I may need to reinvent the wheel on this ([`30ca0fa`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/30ca0fa51d85734f6af363bcd235dd1c705d4b25))
* chunk dumps for mats/animations
Also some more knowledge on meshes. SKEL and Materials are my next targets. ([`a508637`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/a5086376574358e718e7dee7353827f8f89c9f8c))
* Basic Mesh Export (Pos / Tris only), submeshes not merged
I still need to make submeshes children of parent meshes & figure out how to do .mtl ([`ddce209`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/ddce2098849bf0300a251b58e117c0335880dd71))
* more mesh stuff ([`5ec9238`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/5ec9238e436a5ff507e0bf00ad9a3db46f916c5d))
* stupid simple images (Via Pillow)
Since DOW has both dds and tga&39;s side by side, I preserve the format extension in the dumped filename so I can choose the better file ([`5d359df`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/5d359dfc1f37ba0837c845d4439c39b10213c870))
* FDA &39;fixed&39;
Literally, using a &39;fixed&39; sample _rate value seems to make audio files come out properly. ([`4118edc`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/4118edcb360fb6d9de647fc32d5755dd0e381f36))
* Something is wrong; fda2aifc-dec works perfectly mine (aiffr-dec) is lower quality and cuts off ([`c3820ef`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/c3820ef6814f92aad93c9eb170c2d93416fbe1a9))
* minor change to subprocess calls
dec seems to dislike long path names (bet the buffer is only 256 or something, since that used to be the max)
fda2aifc doesn&39;t seem to read my fda&39;s properly, dont know why... Good thing I decided to build my own writer ([`3ea524b`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/3ea524b89e52b140d2d01892c77017aed2f4fcc5))
* Manually construct AIFF-C (Relic) files
Works, although ieee754 (80bit) floats probably dont work as intended ([`735a143`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/735a1439752ff1c2f1916cd431572bfc0d89a55d))
* Unpacking successful ([`f241be2`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/f241be2ed7f717c647004343561c03a33c2880ac))
* Init Commit ([`60131de`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/60131de74bbb7d9cb553d139206beab655dcf6ba))
* Initial commit ([`783c2f7`](https://github.com/MAK-Relic-Tool/Relic-Tool-Core/commit/783c2f791ee23c22fe2384567963f682f0024555))