- 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
- Jan 22, 2018
-
-
Edoardo Canepa authored
-
- Jan 08, 2018
-
-
jonwd7 authored
-
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.
-
jonwd7 authored
-
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.
-
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.
-
- Dec 23, 2017
- Dec 17, 2017