Skip to content
Snippets Groups Projects
  1. May 15, 2018
  2. May 08, 2018
  3. May 05, 2018
    • jonwd7's avatar
      Update git ignore and git attributes · 80b7e52b
      jonwd7 authored
      80b7e52b
    • jonwd7's avatar
      Reorganize script structure · 956d1b7e
      jonwd7 authored
      Importing nifxml.py becomes a little more annoying, but having a subfolder for tools and scripts is necessary for any future expansion (other languages, etc).
      
      Everything that should be available from the nifxml module is imported into __init__.py using an export decorator and __all__ in nifxml.py.
      
      nifdoc.py is a script and not part of package/module so I do not put it inside of `tools/nifdoc`.   I have also left it in the root for now.
      956d1b7e
  4. May 01, 2018
    • jonwd7's avatar
      Rename axle to axis · 22819ce7
      jonwd7 authored
      Axle was not the correct term here, they likely mistyped once and copied it or misread the Havok docs.
      22819ce7
    • jonwd7's avatar
      Prismatic desc fix for Oblivion · 54a9ef8b
      jonwd7 authored
      Sliding A and B are lumped together so it actually goes:
      
      Pivot/Rotation/Plane for A
      Sliding A/B
      Pivot/Rotation/Plane for B
      54a9ef8b
  5. Feb 09, 2018
  6. Feb 07, 2018
  7. Jan 22, 2018
  8. Jan 08, 2018
    • jonwd7's avatar
      License for the parser and docs gen · c34fbb75
      jonwd7 authored
      c34fbb75
    • jonwd7's avatar
      Initial Python nifxml and nifdoc commit · 083bf79c
      jonwd7 authored
      nifxml_doc was completely rewritten into nifdoc
      
      nifxml has not been cleaned up much yet, though everything was converted to Python 3, and almost everything relevant solely to niflib was moved out of nifxml.py and into gen_niflib, which will reside in the niflib repo.
      
      Removed all the HTML template files and simply use Python string formatting with block strings.
      
      nifxml no longer runs on import, so `parse_xml()` must be called from the calling script.
      083bf79c
    • jonwd7's avatar
      Version Bump · 788cc8a7
      jonwd7 authored
      788cc8a7
    • jonwd7's avatar
      Niflib fixes · b63412c4
      jonwd7 authored
      Removes extraneous comma from default attr list.
      
      Removes assumptions that the parser can handle `cond` checks against an NiObject type from inside of a `compound`.  This required splitting up BSPackedCombinedSharedGeomDataExtra and BSPackedCombinedGeomDataExtra and repeating some of the data.
      b63412c4
    • jonwd7's avatar
      Bethesda version fixes 2 · 6ae1acc1
      jonwd7 authored
      10.0.1.2 does not have a User Version to check against, so the >= 3 of the condition previously wasn't even catching 10.0.1.2 since the User Version was 0.
      
      Fixes Havok for all files under 10.1.0.0.
      6ae1acc1
  9. Dec 23, 2017
  10. Dec 17, 2017
  11. Dec 15, 2017
    • jonwd7's avatar
      [PARSER CHANGES REQUIRED] Use `\` as compound member accessor · f7402198
      jonwd7 authored
      Instead of requiring all parsers to special-case the arg passing for BSVertexDesc,  have just adopted the `\` syntax for compound member accessor.
      
      So at least for parsers that do not internalize BSVertexDesc to be `uint64_t` or equivalent to mirror the game,  all you need to do is support `\`.
      
      For C++ this would go from
      
      `Vertex Desc\Vertex Attributes`
      to
      `vertexDesc.vertexAttributes`
      
      The period syntax was decided against because it is not very visible and `\` is familiar from filepaths / directory trees.
      f7402198
  12. Dec 14, 2017
    • jonwd7's avatar
      NiEvaluator and 20.5+ KF support, better animation defaults. · 5e4be763
      jonwd7 authored
      Added NiSequenceData and NiEvaluator for 20.5.0.0+.  In 20.5.0.0 NiSequenceData is an alias for NiControllerSequence.  The XML does not handle this and will defer to parser support.  It does not seem to happen in practice.
      
      For 20.5.0.1,  NiSequenceData is a hybrid of old and new,  pre-NiEvaluator.
      
      For 20.5.0.2+, NiEvaluator replaces NiInterpolator for everything.  Data wise they are almost exactly the same.
      
      Also improved the default values for Blend and BSpline interpolators.
      5e4be763
    • jonwd7's avatar
      BSPackedCombined CK version, cleanup and decoding. · a16466f1
      jonwd7 authored
      BSPackedCombinedGeomDataExtra is the version of precombined produced by the CK, whereas all vanilla precombined was BSPackedCombinedGeomDataExtra.   The latter is much smaller because it only includes a reference to the geometry.  The CK precombined bakes all geometry into the file.
      a16466f1
    • jonwd7's avatar
      NiMesh/NiGeometry types cleanup · 460429a4
      jonwd7 authored
      Combined GeomMaterialData and MaterialData into one compound and changed NiRenderObject and NiGeometry to compensate, since they used the exact same format for material data.  Moved more rows into MaterialData as well which simplified the conditioning/duplication on NiGeometry greatly.
      460429a4
    • jonwd7's avatar
      Bethesda version fixes · 0af6a1d7
      jonwd7 authored
      The header conditions did not apply to 20.0.0.4.10 which is apparently present in Steam distributions.  The correct files are 20.0.0.5.11 which is a newer format.
      
      Fixed a condition in NiParticlesData that was accidentally applying to non-Bethesda NIFs.
      0af6a1d7
  13. Nov 07, 2017
    • jonwd7's avatar
      Add proper defaults, initial pass · 2ecd23be
      jonwd7 authored
      Aids in proper creation of new blocks by having sound default values.
      
      Also splits Glossiness/Smoothness in BSLightingShaderProperty to have correct defaults and documentation on ranges.  Unknown Float 1 was changed to Rimlight Power as well, and the next line, Backlight Power, relies on its value being FLT_MAX.  So  `Rimlight Power == 0x7F7FFFFF` is used as a `cond` for Backlight Power and this may require the parser to deal with a float to hex comparison.
      2ecd23be
  14. Oct 19, 2017
  15. Oct 17, 2017
    • jonwd7's avatar
      NiMeshPSysData decoding · b0f23b90
      jonwd7 authored
      b0f23b90
    • jonwd7's avatar
      Simplified constraint descriptors · 05d4bf7c
      jonwd7 authored
      Also flattened the hardcoded entity arrays since there has to be two anyway.  This way changing the Num to incorrect number will not mess up the file writes.
      
      Reduced the 3 sets of Transform A and B rows to only two by changing the vercond.
      05d4bf7c
  16. Oct 16, 2017
  17. Oct 15, 2017
    • jonwd7's avatar
      PrismaticDescriptor Oblivion changes · cc6ab0f2
      jonwd7 authored
      Oblivion appears to use TransformA and TransformB just like FO3 and later but the orders of the vectors appear to be swapped for each transform.  At least this makes the constraints render consistent with FO3+.
      cc6ab0f2
  18. Oct 14, 2017
    • jonwd7's avatar
      Removal of niflibtype · d31de19b
      jonwd7 authored
      The mapping will now be done in nifdocsys.
      d31de19b
    • jonwd7's avatar
      BSSubIndexTriShape naming and type naming changes. · b036ecc8
      jonwd7 authored
      Changed to be more in line with the real names.  Combined the FO4 BSGeometrySegmentData with the old BSGeometrySegmentData in the same compound so that they would be the same type/variable for niflib on BSSubIndexTriShape and removed the suffix attr for it.
      b036ecc8
  19. Oct 09, 2017
    • jonwd7's avatar
      BS Properties and BSVertexDesc changes · cb4b07f9
      jonwd7 authored
      Use BSVertexDesc everywhere applicable.  Now passing in the entire compound as an ARG.  This means that a parser either has to treat BSVertexDesc as a uint64 and then shift to VF6-VF7, use & overloads for the class, or special case the class in some way.
      
      Changed BS Properties fixed-size link array to two flat Refs as they are always a Shader Property and an Alpha Property and are dealt with flatly in-engine as well.
      cb4b07f9
  20. Oct 07, 2017
Loading