Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. May 28, 2018
  4. 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
  5. 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
  6. 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
  7. May 16, 2018
  8. May 15, 2018
  9. May 08, 2018
  10. 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
  11. 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
  12. Feb 09, 2018
  13. Feb 07, 2018
  14. Jan 22, 2018
  15. 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
  16. Dec 23, 2017
  17. Dec 17, 2017
Loading