- Jun 05, 2018
-
-
jonwd7 authored
For #70
-
jonwd7 authored
For #70
-
jonwd7 authored
Using tokens from #70 it is now feasible to version the Bethesda blocks.
-
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.
-
- Jun 04, 2018
-
-
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.
-
- Jun 02, 2018
-
-
jonwd7 authored
Hey look at that, linting helped immediately. Too bad I forgot to lint before committing the last commit.
-
jonwd7 authored
-
jonwd7 authored
Removed redundant descriptions for unknown values, removed incorrect descriptions for previously unknown values. Any custom extension unknowns were prefixed with their relevant game. Anything that was "Unk" was changed to "Unknown" for consistency. A few inherited duplicates were also fixed in the process.
-
jonwd7 authored
-
- Jun 01, 2018
-
-
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.
-
- May 31, 2018
-
-
jonwd7 authored
Added V10_2_0_0__1 and scoped NiFurSpringController to it since it is a custom block only for that game.
-
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.
-
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.
-
jonwd7 authored
First batch of fixed issues detected by the new linter. Also some slight cleanup, plus an interitance fix a Bethesda particle class.
-
- May 28, 2018
-
-
jonwd7 authored
-
- May 27, 2018
-
-
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).
-
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.
-
- May 18, 2018
-
-
jonwd7 authored
Formalization of what makes type and member name strings valid requires the removal of non-alphanumerics with the exception of the colon.
-
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.
-
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.
-
- May 17, 2018
-
-
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.
-
jonwd7 authored
In C++ and other langs, this compound member gets generated to "union" which clashes with the reserved keyword.
-
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.
-
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.
-
jonwd7 authored
-
- May 16, 2018
-
-
jonwd7 authored
Scene/SceneDesc were relatively old and unused and also quite complex to implement so they never got ported to XML from the 010 templates. Note: Half the files that actually use Scene/SceneDesc are in Empire Earth III, which its version 20.2.0.8 behaves differently for these blocks than other 20.2.0.8 versions. The only way to tell the difference is by the file extension, which is .nifcache. This is beyond the scope of nif.xml, and so only the game files that match the version conditions of Gamebryo proper are supported.
-
jonwd7 authored
-
jonwd7 authored
-
jonwd7 authored
-
- May 15, 2018
-
-
jonwd7 authored
-
- May 08, 2018
-
-
neomonkeus authored
nifxml 0.9.1
-
- May 05, 2018
-
-
jonwd7 authored
-
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.
-
- May 01, 2018
- Feb 09, 2018
- Feb 07, 2018