Skip to content
Snippets Groups Projects
  1. Jun 05, 2018
    • jonwd7's avatar
      Use tokens for verconds · d8866313
      jonwd7 authored
      For #70
      d8866313
    • jonwd7's avatar
      Use tokens for defaults · 30010df6
      jonwd7 authored
      For #70
      30010df6
    • jonwd7's avatar
      Bethesda block versioning · fd66c975
      jonwd7 authored
      Using tokens from #70 it is now feasible to version the Bethesda blocks.
      fd66c975
    • jonwd7's avatar
      Initial commit for #70 · 9c7061f8
      jonwd7 authored
      Tokens are grouped by name and associated with a list of attributes.  Only listed attributes should be processed for tokens of that name.
      
      Order of token groups matters.  Token strings can themselves include tokens, so any token group used in other tokens needs to come after.
      9c7061f8
  2. Jun 04, 2018
    • jonwd7's avatar
      Remove ver/userver/userver2 for #76 · 513d223e
      jonwd7 authored
      The `ver` attribute was never actually formalized and just meant as a shorcut for using both ver1/ver2 on the same version.  `userver` was almost never used and `userver2` was becoming increasingly uncommon as most comparisons were switched to inequalities.
      
      To make things easier, these should just be part of the expression.
      513d223e
  3. Jun 02, 2018
  4. Jun 01, 2018
    • jonwd7's avatar
      [Linting] Inherited duplicates · 90330d0b
      jonwd7 authored
      Fixed inherited duplicate names, as well as the layout of BSTriShape for Particle emitter geometry data in SSE.
      
      Left the name for Dynamic Data as "Vertices" though it is technically just called "Dynamic Data" in engine.  It contains the vertices and bitangent X for any BSDynamicTriShape, so the naming is apt.
      90330d0b
  5. May 31, 2018
    • jonwd7's avatar
      Added custom version 10.2.0.0, 1 · 986bbc8b
      jonwd7 authored
      Added V10_2_0_0__1 and scoped NiFurSpringController to it since it is a custom block only for that game.
      986bbc8b
    • jonwd7's avatar
      NiMesh DEM cleanup and decoding · 74c1aac6
      jonwd7 authored
      Moved all the DEM specific stuff out of NiMesh and into compounds.  Did some decoding while I was at it.   There are many small customizations to other blocks for DEM, but I am not including them in this commit.  Regardless, the existing XML only worked for DEM1 and now at least some DEM2 will load fully.
      74c1aac6
    • jonwd7's avatar
      Initial Commit for #71 · 1d62f161
      jonwd7 authored
      First-pass implementation of `since`/`until` and `versions`.  Avoided nearly all Bethesda blocks for now, as they require the token system or would become absurdly repetitious.
      1d62f161
    • jonwd7's avatar
      Initial linting fixes for #74 · 08d73239
      jonwd7 authored
      First batch of fixed issues detected by the new linter.
      
      Also some slight cleanup, plus an interitance fix a Bethesda particle class.
      08d73239
  6. May 28, 2018
  7. May 27, 2018
    • jonwd7's avatar
      Primary version indicators for #69 · 8bc54168
      jonwd7 authored
      A concise way of listing which versions are most important to each game.
      
      Each game should have only one set of `{{}}`.
      
      Note:  In the case of Oblivion, there are two "primary" versions..  20.0.0.4 (10) is used for KF and 20.0.0.5 is used for NIF.  Thus I changed the "game name" to `{{Oblivion KF}}` for 20.0.0.4 (10).
      8bc54168
    • jonwd7's avatar
      Simplifying BSVertexData conds · 2f1101f3
      jonwd7 authored
      They were kept separate for clarity in actual code using the enumerations; clarity that doesn't transfer over to XML which is using the raw integers.
      
      ```
      (A & X) != 0 && (A & Y) != 0 && (A & Z) == 0
      ```
      Is the same as
      ```
      (A & (X|Y|Z)) == (X|Y)
      ```
      Basically != 0 you want that particular bit on the RHS of the expression, and == 0 you do not.
      Anything tested you put on the LHS.
      
      Also switched the order of HalfVector3/Vector3 as the larger type should come first.
      2f1101f3
  8. May 18, 2018
    • jonwd7's avatar
      Invalid member name fixes · 3268ab6b
      jonwd7 authored
      Formalization of what makes type and member name strings valid requires the removal of non-alphanumerics with the exception of the colon.
      3268ab6b
    • jonwd7's avatar
      Correct NiBoneLODController · cfe82da4
      jonwd7 authored
      The attempt here was to exclude Bethesda from several rows on NiBoneLODController, since in the XML it inherits from NiBoneLODController for its own custom block that does not have those rows.  The reasoning is actually that it does *not* inherit from NiBoneLODController in the engine,  but the inheritance will stay fudged here for now.
      cfe82da4
    • jonwd7's avatar
      Initial implementation for #69 · eb4dfe68
      jonwd7 authored
      Made `<version>` mean distinct combination of header values which produce identical block layouts.  This meant splitting up several main Versions into many based on User Version or Bethesda  Version.
      
      id = Used to uniquely identify this collection of NIF versions. Can also be used for enum generation, map/dictionary keys.
      
      user = List of User Versions which are functionally equivalent
      
      bsver = List of Bethesda Versions which are functionally equivalent
      
      custom = If user/bsver are default but the Version is actually specific to a developer and not an official Gamebryo version
      
      supported = Whether or not the XML fully supports reading/writing of this version.
      
      ext = List of custom file extensions associated with this version.
      eb4dfe68
  9. May 17, 2018
    • jonwd7's avatar
      Fixes for 10.2.0.1/10.3.0.1/10.4.0.1 custom versions · af2a5b8b
      jonwd7 authored
      Enhanced support for WorldShift.
      
      In order to not complicate the objects, I fudged the official version conditions slightly to accommodate 10.4.0.1 given that no official versions exist between 10.2 and 20.0.
      
      Aside from the new custom block, only modified the conditions that were already there.
      af2a5b8b
    • jonwd7's avatar
      "union" can be a reserved keyword · ed01a5b8
      jonwd7 authored
      In C++ and other langs, this compound member gets generated to "union" which clashes with the reserved keyword.
      ed01a5b8
    • jonwd7's avatar
      Fixes for 20.3.0.9 custom versions · fcf42dbe
      jonwd7 authored
      Only MdlManBinary.nif cannot be read for Divinity 2, and it appears to be some kind of rig filled with custom classes serialized to NIF.  There is no desire to decode this single NIF with 10 custom classes.
      
      Also the Divinity 2 XML files that have a Gamebryo header are ignored as they appear to just contain XML strings in more custom classes.
      fcf42dbe
    • jonwd7's avatar
      Use NiBound where necessary · be3ce677
      jonwd7 authored
      Several objects used separate center/radius when it's actually an NiBound object.  This was apparent with the addition of additional data to NiBound for custom 20.3.0.9 versions for Divinity 2.
      be3ce677
    • jonwd7's avatar
      NiPSCurveEmitter · 138594e3
      jonwd7 authored
      138594e3
  10. May 16, 2018
  11. May 15, 2018
  12. May 08, 2018
  13. 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
  14. 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
  15. Feb 09, 2018
  16. Feb 07, 2018
Loading