Skip to content
Snippets Groups Projects
  • Shon Ferguson's avatar
    3df0c2d6
    Niflib is now working again and using the new update method. This means: · 3df0c2d6
    Shon Ferguson authored
    - There are no longer any defines, things like inheritance class name, NIF attribute variables, and default constructor code are all visible without looking at another file.
    - All non-custom parts of the Object files are now totally identical and in the same order, so it will be easier to compare them.
    - NiObjects are now completely self-contained.  To remove them from Niflib, you have only to exclude their CPP file from the build.  To add new ones, you only have to include their new CPP file.
    - Making a change to a NiObject implementation file only causes that one file to be re-compiled, which is generally much quicker than before since the large obj_define and obj_impl files do not have to be parsed or compiled.
    - There are no longer any "Internal" versions of the Read, Write, asString, FixLinks, or GetRefs functions.  Now there is just one function for each of these with pre and post custom code areas (except for GetRefs which I didn't think needed it.)
    - Updates to the hierarchy in the XML should now be almost completely automatic.  All that should be necessary to make an update is to add any new NiObject CPP files to the build.
    - Changes to the generated parts of the NiObject files can now be made at any time, and immediately applied to all NiObjects without editing each existing one.
    3df0c2d6
    History
    Niflib is now working again and using the new update method. This means:
    Shon Ferguson authored
    - There are no longer any defines, things like inheritance class name, NIF attribute variables, and default constructor code are all visible without looking at another file.
    - All non-custom parts of the Object files are now totally identical and in the same order, so it will be easier to compare them.
    - NiObjects are now completely self-contained.  To remove them from Niflib, you have only to exclude their CPP file from the build.  To add new ones, you only have to include their new CPP file.
    - Making a change to a NiObject implementation file only causes that one file to be re-compiled, which is generally much quicker than before since the large obj_define and obj_impl files do not have to be parsed or compiled.
    - There are no longer any "Internal" versions of the Read, Write, asString, FixLinks, or GetRefs functions.  Now there is just one function for each of these with pre and post custom code areas (except for GetRefs which I didn't think needed it.)
    - Updates to the hierarchy in the XML should now be almost completely automatic.  All that should be necessary to make an update is to add any new NiObject CPP files to the build.
    - Changes to the generated parts of the NiObject files can now be made at any time, and immediately applied to all NiObjects without editing each existing one.