Giter Site home page Giter Site logo

reclaimer's People

Contributors

marcospampi avatar mosesofegypt avatar shellyherself avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

reclaimer's Issues

[Tag cleaning] Fix invalid function enum values in tags.

It seems a few maps contain tags that have invalid values for the selected functions, likely caused by past HEK+ extraction. It just so happens these values don't cause the game to crash on Halo Custom Edition, but can crash other versions of the game. tool.exe does not check these either and will build the invalid tags into maps.

Here is an example; map [1] was used as a source for map [2], and in map [2] the tag characters/marine_armored/flashlight_marine.light became corrupted.

[1]http://maps.halonet.net/maps/beryl.zip
[2]http://maps.halonet.net/maps/Beryl_Rescue.zip

Model compilation pipeline does not support shader permutations.

I see no parsing of numbers anywhere in the material or compilation code. This is bad as it disallows the usage of shader permutations which can help people force different bitmap indices or have multi digit ammo counters.

I want to rework the material pipeline.

Edit all compilation pipelines to utilize reclaimer.util.is_valid_ascii_name_str

Currently most(maybe all?) of the compilation pipelines will crash when trying to save a tag that was compiled from source files with non latin-1 characters in their filename. Use reclaimer.util.is_valid_ascii_name_str to determine and handle offending strings before they end up in the resulting tag. As latin-1 is an extended subset of ascii, that function will work how we need it to.

Remove all tag hash related functionality in HaloHandler

Hashing tags by their worthwhile data was intended to be a way to detect tags by their content when tag paths were destroyed. This concept was left unfinished and is made obsolete by Refinery's heuristic deprotection. Remove all traces of the hashing, such as these methods:

https://github.com/MosesofEgypt/reclaimer/blob/develop/hek/handler.py#L21
https://github.com/MosesofEgypt/reclaimer/blob/develop/hek/handler.py#L26
https://github.com/MosesofEgypt/reclaimer/blob/develop/hek/handler.py#L27
https://github.com/MosesofEgypt/reclaimer/blob/develop/hek/handler.py#L186
https://github.com/MosesofEgypt/reclaimer/blob/develop/hek/handler.py#L192

get rid of fps_60_related

hek.handler has fps_60_related() which can't be removed until it is confirmed that nothing references it. Make it so nothing references it and get rid of it.

Compressed animation deserialization fails if there is scale data

Attempting to decompress any compressed animation will likely fail if it has scale data on high index nodes. This can be replicated by trying to decompress SPV3's cmt\characters\_shared\covenant\brute\brute_full.model_animations tag

The issue is that the wrong value is being used for the index into the scale data. To fix it, replace this code here:
https://github.com/Sigmmma/reclaimer/blob/master/reclaimer/animation/serialization.py#L588

si += 1
scale_def = scale_def_data[ni]

with this code

scale_def = scale_def_data[si]
si += 1

Create OS -> vanilla convertors through definition objs

Should be a good way to implement a full opensauce remover like os_tool has.

Sadly the one OS tool has while able to do recursive, will not accept certain tags as a starting point as the starting tag needs to have opensauce extensions. It also cannoy operate on a complete tags folder.

Add data directory member to HekHandler

This should make way for a project wide change where instead of guessing the data dir based on the tags dir, or guessing the tags dir based on the data dir is abolished.

Modify compile_gbxmodel to not ignore errors if gbxmodel breaks the structure

Currently model.model_compilation.compile_gbxmodel will ignore ALL errors that would make a gbxmodel have too many of certain tag blocks to properly serialize. It needs to be modified to NOT ignore errors where the number of certain tag blocks is too high to specify those by index where they need to be.

This means absolutely no more than 128 regions, 128 permutations per region, 32768 shaders/geometries, and 64 gbxmodel nodes(43 for models).

When sound tag is set to 'not in map' the wrong tag meta is extracted

This is a small detail where if a sound tag is set to be 'not in map' the tag meta is still actually in the map, and that is what Halo uses. But the rawdata of the sounds is in the resource map.

Use Coldsnap as a test case sound\sfx\vehicles\warthog_7_engine
Expected values are on the left in the image.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.