Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. Oct 19, 2017
  4. 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
  5. Oct 16, 2017
  6. 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
  7. 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
  8. 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
  9. Oct 07, 2017
    • jonwd7's avatar
      Removed unnecessary suffix usage missed in 254893b8 · 4513009e
      jonwd7 authored
      nifdocsys will cast duplicate names as long as the types are integral and the largest type is first.
      4513009e
    • jonwd7's avatar
      Niflib compilation issues fixes · dfeccc91
      jonwd7 authored
      "Signed" turned into `signed` which is a reserved keyword in C++.  A ref was missing a template.
      dfeccc91
    • jonwd7's avatar
      Major version condition overhaul for Bethesda NIFs · 2e534eba
      jonwd7 authored
      Also some decoding and major corrections.
      
      NiParticlesData and NiPSysData were almost completely wrong.  NiGeometryData was wrong.  NiGeometry was wrong.  This was mostly due to Bethesda changing or breaking inheritance for derived types.
      
      For Bethesda 20.2 NIFs NiParticlesData now inherits from NiObject directly.  NiParticleSystem changes between BSGeometry or NiGeometry based on version.
      
      This resulted in NiPSysData and NiParticleSystem being almost completely wrong for later Bethesda versions.
      
      Also changed all misuses of `User Version` to differentiate Bethesda versions to `User Version 2`.
      2e534eba
    • jonwd7's avatar
      Name-Type uniqueness changes for niflib · 75f35d6a
      jonwd7 authored
      75f35d6a
    • jonwd7's avatar
      Fix Typo, add games to version · dde5b7c0
      jonwd7 authored
      dde5b7c0
  10. Oct 04, 2017
    • jonwd7's avatar
      Major cleanup · 30e10f61
      jonwd7 authored
      Removal of extraneous or inaccurate "Unknown" descriptions,  removal of unhelpful, repetitive and unnecessary descriptions.  Clarification of many descriptions.  Clarification of some names.  Focus on more useful descriptions for particle system blocks.
      30e10f61
  11. Sep 23, 2017
    • jonwd7's avatar
      Havok type changes · e75f2dec
      jonwd7 authored
      Prefix actual Havok lib types with 'hk', remove 'hk' from TriangleData as it is a Bethesda type.
      e75f2dec
  12. Sep 19, 2017
    • jonwd7's avatar
      NiSourceTexture changes · 5749bcff
      jonwd7 authored
      Created a compound for NiTexture::FormatPrefs to mimic Gamebryo and in order to more correctly document the intent of the FormatPrefs.
      5749bcff
    • jonwd7's avatar
      NiDynamicEffect changes · bb01c192
      jonwd7 authored
      Fixed the nodes list to be more correct.  Documented NiLight changes in FO4.
      bb01c192
  13. Sep 16, 2017
    • jonwd7's avatar
      NiControllerSequence complete redo, other ctlr changes · 40310161
      jonwd7 authored
      Corrected naming, filled unknowns, and redid documentation for NiControllerSequence/NiSequence incl the ControlledBlock compound.
      
      Added documentation regarding Controller ID and Interpolator ID (previously "Variable 1" and "Variable 2").
      
      Added a few missing controllers.   Fixed NiLightColorController to not be related to NiMaterialColorController.
      
      Fixed BSPSysMultiTargetEmitterCtlr inheritance.
      40310161
  14. Sep 15, 2017
    • jonwd7's avatar
      Enum and compound doc, type, and naming changes · 0cc1f4de
      jonwd7 authored
      Filled out and fixed enum and some compound documentation,  changed names to match engine types.  Started marking some enums/compounds as Bethesda-specific.
      
      Also shifted NiPoint3InterpController members to NiMaterialColorController where they belonged.
      0cc1f4de
  15. Sep 14, 2017
  16. Sep 13, 2017
    • jonwd7's avatar
      NiBSpline* type, name, and doc fixes · 3e57fbbe
      jonwd7 authored
      Offset and Half Range are the correct names for the compact control point data used to decompress the compact control points.
      
      Beware for NiBSplineTransformInterpolator and NiBSplineCompTransformInterpolator the naming has shifted for "Offset".
      
      "Offset" is now "Handle" and "Bias" is now "Offset".   This means the same names still exist but for different rows.
      
      Also shifted some types around to the correct classes and filled out some unknowns.
      3e57fbbe
  17. Sep 12, 2017
    • jonwd7's avatar
      Enum and Compound changes · 844160d2
      jonwd7 authored
      Fixed a few enum types to bitflags.  Renamed some compounds to match the types in engine.  Removed MTransform because it doesn't exist.  The NiAVObject transform is simply an NiTransform written out of order.   Switched types to use NiQuatTransform where applicable.
      
      Made an NiPlane compound to match the type used in engine.   Switched types to use NiPlane where applicable.
      
      Removed some unused compounds and commented code.
      844160d2
  18. Sep 10, 2017
  19. Sep 08, 2017
  20. Sep 06, 2017
  21. Aug 16, 2017
Loading