Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev8 #200

Open
wants to merge 121 commits into
base: develop
Choose a base branch
from
Open

Dev8 #200

wants to merge 121 commits into from

Commits on Feb 23, 2018

  1. Configuration menu
    Copy the full SHA
    e61552e View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2018

  1. [UI] Message box no longer focus stealing

    This was necessary for a new action which uses a message box to display information but it's meant to stay open while you interact with the rest of the UI.
    hexabits committed Jun 10, 2018
    Configuration menu
    Copy the full SHA
    e2c61c2 View commit details
    Browse the repository at this point in the history
  2. [GL] More specific condition for samplers

    The intent of `mesh->bslsp` was really `!mesh->bsesp` and to ever support shaders on Oblivion/FO3 this change is needed as those won't be BSLSP either.
    hexabits committed Jun 10, 2018
    Configuration menu
    Copy the full SHA
    b9ca3a3 View commit details
    Browse the repository at this point in the history
  3. [Spell] Referenced By

    Show which blocks reference this one
    hexabits committed Jun 10, 2018
    Configuration menu
    Copy the full SHA
    6d0bfda View commit details
    Browse the repository at this point in the history
  4. [Spell] Convert List Shape

    For FNV and later, convert CLS to LS, and for FO3 and earlier, convert LS to CLS.
    hexabits committed Jun 10, 2018
    Configuration menu
    Copy the full SHA
    b4c7470 View commit details
    Browse the repository at this point in the history
  5. [Spell] Create Convex Shape improvements

    Merge multiple CVS into a list shape.  Take the entire transform into account for CVS.  Support BSTriShape.
    
    Also synced to XML.
    hexabits committed Jun 10, 2018
    Configuration menu
    Copy the full SHA
    0d7396b View commit details
    Browse the repository at this point in the history
  6. [XML] Initial nifxml 1.0 sync

    Added token replacement, support for `onlyT`/`excludeT` by simply aliasing back to the `cond` version for now.
    
    At least acknowledge bitfield tags for now, but do not do anything with them other than alias them to their storage type.
    
    Support for the BSStreamHeader reorganization in Header.
    Renamed TEMPLATE and ARG tokens.
    Removed userver and userver2
    Do *NOT* support int64/uint64 yet other than the type map so that nifxml won't error.
    hexabits committed Jun 10, 2018
    Configuration menu
    Copy the full SHA
    4fd3ada View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    bb8a755 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2018

  1. [XML] nifxml 1.0 sync 2

    hexabits committed Nov 11, 2018
    Configuration menu
    Copy the full SHA
    2cfb0da View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4937047 View commit details
    Browse the repository at this point in the history
  3. BSA/BA2 improvements

    Supported more BA2 texture formats.  Made file filter case insensitive.
    hexabits committed Nov 11, 2018
    Configuration menu
    Copy the full SHA
    761de1a View commit details
    Browse the repository at this point in the history
  4. [GL] Fix init problems on some Windows installs

    Some platforms were trying to choose ANGLE instead of OpenGL.
    hexabits committed Nov 11, 2018
    Configuration menu
    Copy the full SHA
    c70b73a View commit details
    Browse the repository at this point in the history
  5. [GL] Fix NiStencilProperty potential rendering crash

    Rendering support added for some versions of NiStencilProperty could crash.
    hexabits committed Nov 11, 2018
    Configuration menu
    Copy the full SHA
    c3c42b6 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2018

  1. Hack for stream 155 shader properties

    nifxml does not have sufficient means to deal with short circuiting of blocks based on a string value.
    
    Also some general fixes.
    hexabits committed Nov 12, 2018
    Configuration menu
    Copy the full SHA
    4e3facd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    022fd5b View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2018

  1. [GL] Initial stream 155 renderer support

    Very minimal rendering and shader support for new Lighting and Effect shaders.
    
    For Lighting, mostly correctly uses the new PBR pipeline with metallicity/reflectivity and an external cubemap (currently 1 hardcoded).  New emissive masks and AO masks are also used to various degrees.  AO mask is used for specular occlusion.
    
    Uses sRGB framebuffer when needed.  Does not add support for sRGB textures in SSE and FO4 NIFs.
    hexabits committed Nov 15, 2018
    Configuration menu
    Copy the full SHA
    072f350 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2019

  1. [XML] nifxml 1.0 sync 3

    hexabits committed Apr 23, 2019
    Configuration menu
    Copy the full SHA
    765029b View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2019

  1. Initial Game Manager commit

    Resource collisions between Fallout 4 and Fallout 76 were severe due to a vastly different asset pipeline while maintaining the same filenames.  Technically resource collisions happened with Skyrim and Skyrim SE too, but the vanilla files were largely identical.
    
    The game manager associates texture and material lookups to a particular game, based on the NIF version.
    
    This does mean that Fallout 3 and Fallout NV are considered the same meta-game and lookups for either game's files will be done in both games' paths.
    
    A "game mode override" is planned to address this.
    hexabits committed Aug 20, 2019
    Configuration menu
    Copy the full SHA
    9bbbe83 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0534267 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9a19a89 View commit details
    Browse the repository at this point in the history
  4. [GL] Fix some issues with sRGB and gl*Color functions

    The sRGB framebuffer being used for some versions caused glClearColor as well as glColor3/4 etc. to be incorrect.
    hexabits committed Aug 20, 2019
    Configuration menu
    Copy the full SHA
    4bb8110 View commit details
    Browse the repository at this point in the history
  5. VERSION increment

    hexabits committed Aug 20, 2019
    Configuration menu
    Copy the full SHA
    14a8d04 View commit details
    Browse the repository at this point in the history
  6. [Build] Disable XML copying

    hexabits committed Aug 20, 2019
    Configuration menu
    Copy the full SHA
    38bc88a View commit details
    Browse the repository at this point in the history
  7. [GL] Updated CRC to flag maps

    Re-scanning the latest files showed a missed `NO_EXPOSURE` usage. Unsure if there since release or if added.  `LOD_OBJECTS` was also missing in NifSkope but was already present in nifxml.  Outside of BTOs, one single NIF uses `NO_EXPOSURE`.
    
    As of August these are the only used shader flag CRCs.
    
    Since editing of this version will not be supported, unused flags will continue to be excluded.
    hexabits committed Aug 20, 2019
    Configuration menu
    Copy the full SHA
    b411e7c View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d071fc5 View commit details
    Browse the repository at this point in the history
  9. [UI] Fix string output for BSVertexDesc

    The automatic stringification for BSVertexDesc got lost in the refactor, when it was made into a bitfield which is treated as an aliased type like enum/bitflags and thus is mostly treated as uint64.
    hexabits committed Aug 20, 2019
    Configuration menu
    Copy the full SHA
    6e4d6fa View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2019

  1. [UI] Message improvements

    Return pointer from Message helpers when needing to customize the behavior.
    
    Added a log message function directly to the model which allows any function with a nif pointer to support both UI messages and the file checker output.  For example, functions that are sanitizers (run on save) and used to output information in the file checker.
    hexabits committed Aug 21, 2019
    Configuration menu
    Copy the full SHA
    56c6190 View commit details
    Browse the repository at this point in the history
  2. [UI] Improved file checker

    Renamed XML Checker to File Checker since apparently nobody realizes the window even exists.
    
    Added basic value checking.  Currently arrays are not traversable except for the first item of the array.  Compounds can be descended through the slash syntax used elsewhere in the program.
    
    Added a few basic error checkers that run on Sanitize as well as during file checking.  They were only done upon user request so they are not very thorough.
    
    Files that error during header read no longer fail silently.  Also added an option to only read the header and the BSStream version is now printed with the filename.
    hexabits committed Aug 21, 2019
    Configuration menu
    Copy the full SHA
    e14f6d6 View commit details
    Browse the repository at this point in the history
  3. Import OBJ as bhkNiTriStripsShape

    Older Bethesda NIF versions (Oblivion, FO3) can use bhkNiTriStripsShape as a Havok shape which is relatively easy to import to from a file.
    hexabits committed Aug 21, 2019
    Configuration menu
    Copy the full SHA
    99eca0e View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2019

  1. Add missing changes for 99eca0e

    hexabits committed Aug 22, 2019
    Configuration menu
    Copy the full SHA
    c119f81 View commit details
    Browse the repository at this point in the history
  2. Game Manager update

    Switched back to absolute paths for game folders, fixed auto detection in the UI and at initializing of said paths.
    
    The idea was to show only relative paths for both folders and archives if they were under the install path as this would tidy up the UI.  In practice, supporting both relative and absolute (outside of game install) paths in the same list in the UI and registry is not worth the effort.
    hexabits committed Aug 22, 2019
    Configuration menu
    Copy the full SHA
    d96a7d4 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2019

  1. Configuration menu
    Copy the full SHA
    b35cae5 View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2019

  1. Update Game Manager

    Name simplification, general cleanup.
    hexabits committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    a76b206 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    62926ab View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2020

  1. Configuration menu
    Copy the full SHA
    1f7da90 View commit details
    Browse the repository at this point in the history
  2. Game Manager fixes

    Closes #30
    hexabits committed Jul 9, 2020
    Configuration menu
    Copy the full SHA
    bd174eb View commit details
    Browse the repository at this point in the history
  3. [UI] Add Other Games fallback search

    Also, move alternative file extensions checkbox to main Games tab.
    
    Other Games fallback search will look a final time in all listed resources in Other Games if no file is found for the game's own resources.
    hexabits committed Jul 9, 2020
    Configuration menu
    Copy the full SHA
    859aa66 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7771c8b View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2022

  1. Replace u8 string for C++20

    hexabits committed Feb 20, 2022
    Configuration menu
    Copy the full SHA
    9b639e0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6d49d31 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    34045fe View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2022

  1. Support NIF Versions without "Version" in string

    Also early accept
    hexabits committed Feb 21, 2022
    Configuration menu
    Copy the full SHA
    2fd1ccb View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2022

  1. Fix Reorder Link Arrays

    Only run for Bethesda NIFs as described in the class comment.  Support BSTriShape based shapes.
    hexabits committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    f6fb0e5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    005d4b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    50a8066 View commit details
    Browse the repository at this point in the history
  4. [Build] MacOS Fixes

    hexabits committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    faa45e3 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2023

  1. Correct nif.xml (see #33 )

    gavrant committed May 17, 2023
    Configuration menu
    Copy the full SHA
    3bc0c27 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b1e6d8f View commit details
    Browse the repository at this point in the history

Commits on May 18, 2023

  1. Slowed down view "zoom" (mouse wheel and Q, E, Page Up, Page Down key…

    …s) to about a quarter of the former speed
    gavrant committed May 18, 2023
    Configuration menu
    Copy the full SHA
    23bebc8 View commit details
    Browse the repository at this point in the history
  2. UV Editor:

    - Instead of a tiny 512x512 window, open the UV editor maximized and more zoomed in
    - Changed the window's type from Tool to Window. This shows the editor in Windows task bar and adds maximize/minimize buttons to its title bar.
    gavrant committed May 18, 2023
    Configuration menu
    Copy the full SHA
    8f7287d View commit details
    Browse the repository at this point in the history
  3. Show index of items in arrays (vertices, triangles, textures, etc.) r…

    …ight in the Name column of Block Details instead of a tooltip (for example, "Vertex 123")
    gavrant committed May 18, 2023
    Configuration menu
    Copy the full SHA
    ceabba3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    191b23a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f5309b5 View commit details
    Browse the repository at this point in the history

Commits on May 30, 2023

  1. Configuration menu
    Copy the full SHA
    ccbe389 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2023

  1. - Replaced all scene options "&" checks with function calls. IMO, it …

    …makes the code more readable.
    
    - Fixed some compiler warnings.
    - Minor refactoring here and there.
    gavrant committed May 31, 2023
    Configuration menu
    Copy the full SHA
    9ce35de View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2023

  1. Major refactoring and streamlining of updating internal classes from …

    …nif data.
    
    Primary goal: making sure that the properties of internal classes are reset on each update. That should fix some bugs happening when a nif is changed in NifSkope.
    Secondary goals: optimizations and better structure of the code.
    
    Bonuses:
    - Replaced NifModel::getUserVersion2() with new NifModel::getBSVersion(). The latter has a better name and returns the version from cache (created once, on file load) instead of reading it from the header every time.
    - Added static NifModel functions for very common casts of QModelIndex to NifModel.
    - Replaced many "protected property + basic getter and setter" in Property classes with just "public property" to simplify the code.
    - Deleted some obsolete/unused properties and functions, mainly in IControllable family of classes (nif nodes and properties).
    - Fixed some compiler warnings.
    - Better naming, minor optimizations, cleanup here and there.
    gavrant committed Jun 18, 2023
    Configuration menu
    Copy the full SHA
    762a575 View commit details
    Browse the repository at this point in the history
  2. Fixed invisibility/flickering of shapes with alpha property.

    Also fixed the wireframe flickering on the same shapes with alpha.
    Skyrim SE or newer nifs used to be especially prone to these bugs.
    gavrant committed Jun 18, 2023
    Configuration menu
    Copy the full SHA
    d2bdf13 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6942335 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. Optimized NifItem::getArray.

    Added pre-allocation of the result QVector.
    gavrant committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    6b88c92 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2023

  1. Split Shape class into a separate pair of .h + .cpp files.

    2 big(-ish) classes sharing a single glmesh file has become unwieldy.
    gavrant committed Jul 14, 2023
    Configuration menu
    Copy the full SHA
    9389918 View commit details
    Browse the repository at this point in the history
  2. Model refactoring, part 1: NifItem

    Main goals of the whole model refactoring:
    - For NifItem and *Model (BaseModel, NifModel, etc.) methods with a QString parameter provide QLatin1String and 'const char *' overloads. QLatin1String("foo") is much faster than "foo" with its under-the-hood conversion to QString because in Qt 5 QLatin1String("foo") could be done at compile time. And this will make something like reading Skyrim SE shapes several (4 to 8) times faster.
    - For *Model methods working with QModelIndex child items provide convenient overloads to work with 'NifItem *' instead. Overall, gradually migrate from using QModelIndex to 'NifItem *', at least on low level, to avoid back-and-forth conversions between QModelIndex and 'NifItem *' and to simplify the code overall.
    
    Bonuses in this commit:
    - NifItem: name(), type(), ... getters now return 'const QString &' instead of QString, to avoid wasting resources on creating a QString copy when it's not needed.
    - NifItem: new hasName and hasType methods as a replacement for 'name() == "foo"' and 'type() == "foo"' ('const char *' overloads - for performance (see main goal #1), QString and QLatin1String - for uniformity).
    - NifItem: new get<T> method as a shortcut for this->itemData.value.get<T>().
    - NifItem: static versions of get<T> and getArray<T> methods, with a nullptr check for the item.
    gavrant committed Jul 14, 2023
    Configuration menu
    Copy the full SHA
    4efc97e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    83fa4ea View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2023

  1. Fixed a crash on calling Message::append (message box with "Show Deta…

    …ils...") if it has been called before in this session and that message box has been closed with "X" button instead of "OK".
    
    Bonuses for Message::append:
    - Set the minimum width of the message box to about a quarter of the screen resolution.
    - The details are shown by default now (saves one click on "Show Details...").
    - For each main window of NifSkope, its own message box is now created instead of dumping messages from all main windows into a single box.
    gavrant committed Jul 24, 2023
    Configuration menu
    Copy the full SHA
    1c927d2 View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2023

  1. Model refactoring, part 2: carpet bombing

    - NifItem: Reworked cached data (row index, child link items) to make it more reliably updated.
    - NifItem: Added a lot of shortcut functions to its itemData.value methods.
    - BaseModel/NifModel/KfmModel: Expanded and standardized overloads for various item getters, setters and checkers. With putting more emphasis on working with NifItem * instead of QModelIndex and with some string tricks (const char * -> QLatin1String), it should result in a smaller and faster code overall.
    - Many NifItem getters and setters now show a message box if they detect a problem instead of silently returning a default value or false. This is more for debug purposes, to catch and polish any rough spots in the code.
    - Got rid of a bunch of repeating code (for example, in item condition evaluation).
    - Gave some functions better names (for example, updateArray -> updateArraySize).
    gavrant committed Jul 30, 2023
    Configuration menu
    Copy the full SHA
    06b461d View commit details
    Browse the repository at this point in the history
  2. Python script for generating standard overload declarations and defin…

    …itions for NifItem methods in BaseModel/NifModel/KfmModel classes.
    
    See get<T> in BaseModel as an example.
    gavrant committed Jul 30, 2023
    Configuration menu
    Copy the full SHA
    5abf173 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2023

  1. Fixed wrong type of Backward and Forward value getters in glcontrolle…

    …r::interpolate.
    
    This fixes animations of some effects in NifSkope.
    gavrant committed Aug 2, 2023
    Configuration menu
    Copy the full SHA
    698dd0d View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2023

  1. Merge pull request #46 from gavrant/dev8

    Refactor courtesy @gavrant
    hexabits authored Aug 30, 2023
    Configuration menu
    Copy the full SHA
    318dd1a View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2023

  1. Configuration menu
    Copy the full SHA
    6e73dc7 View commit details
    Browse the repository at this point in the history
  2. Improve bsver checks

    hexabits committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    2cd3261 View commit details
    Browse the repository at this point in the history
  3. Fix Skyrim shading issues

    Manual merge for niftools#230
    hexabits committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    7d56da5 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2023

  1. Fix archives for FO3/NV

    hexabits committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    6411cfc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9b970b3 View commit details
    Browse the repository at this point in the history
  3. nifxml updates

    hexabits committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    1365ca1 View commit details
    Browse the repository at this point in the history
  4. nifxml fix INFINITY token

    hexabits committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    bf0a264 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2023

  1. Configuration menu
    Copy the full SHA
    dcac143 View commit details
    Browse the repository at this point in the history
  2. File Checker output error count

    Mainly meant for when there are 0 errors, so that it is clear there were no errors.
    hexabits committed Sep 5, 2023
    Configuration menu
    Copy the full SHA
    a5e6b20 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2023

  1. NifSkope.pro updates

    - Changed C++ standard version to 20 (from 14 and "latest").
    - Changed output file template to vcapp (Visual Studio Project).
    gavrant committed Sep 6, 2023
    Configuration menu
    Copy the full SHA
    52f1e64 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2023

  1. NifSkope.pro: added copying of styles\qwindowsvistastyle.dll on build

    This is required since Qt 5.15 for the "Windows" UI themes to work properly.
    gavrant committed Sep 7, 2023
    Configuration menu
    Copy the full SHA
    bb67de9 View commit details
    Browse the repository at this point in the history
  2. Trigonometry fixes and refactoring

    - Fixed undefined M_PI and other C++ math constants once and for all. Apparently, including math.h is not enough, _USE_MATH_DEFINES macros also must be defined. Solved by adding _USE_MATH_DEFINES to NifSkope.pro.
    - Added functions for converting radians to degrees and back.
    - Minor refactoring of Vector2, Vector3, Vector4 classes (improved precision of normalize() by removing a redundant multiply operation, added toString() method, minor optimizations and fixes).
    
    Note: if you don't update the project file by (re)generating it from NifSkope.pro, you must add _USE_MATH_DEFINES macros by hand for it to compile. In Visual Studio 2022 it's done in the project's properties -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions.
    gavrant committed Sep 7, 2023
    Configuration menu
    Copy the full SHA
    48697cd View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2023

  1. Fixed a massive spam of Message::append calls freezing NifSkope

    by limiting the max. number of detailed text lines (error lines) in a message box to 50.
    gavrant committed Sep 8, 2023
    Configuration menu
    Copy the full SHA
    1b8cfa6 View commit details
    Browse the repository at this point in the history
  2. Fixed "QWindowsWindow::setGeometry: Unable to set geometry" warning f…

    …rom Qt on Message::append
    
    by moving msgBox->setDetailedText(...) after msgBox->show().
    Also registration for "OK button pressed" event was moved before msgBox->show(), just to be safe.
    gavrant committed Sep 8, 2023
    Configuration menu
    Copy the full SHA
    8c63b24 View commit details
    Browse the repository at this point in the history
  3. Fixed NifSkope failing to get the Rotation of the currently selected …

    …NiNode in "Show Nodes" + "Show Axes" mode
    
    because it's a Matrix not a Quat.
    gavrant committed Sep 8, 2023
    Configuration menu
    Copy the full SHA
    7aa8c4a View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2023

  1. Model refactoring, part 3: cleanup

    NifItem class:
    - Replaced "type" in the name of the string type functions (type(), hasType, setType) with "strType" (strType(), hasStrType, ...) to make it clearer that this is not about the numerical type of the item's value.
    - Replaced "temp" in the template functions (temp(), setTemp) with "templ" (templ(), setTempl). "Temp" made me think it has something to do with "temporary".
    - "Value" functions got shorter or clearer names. For example, valueIsCount became isCount, valueToCount - getCountValue, valueFromCount - setCountValue.
    - Deleted most of the static functions that checked for item == nullptr. No point to bloat the code for just 0 to 3 uses for those static "mirrors".
    - Added isArrayEx() which checks if the item is an array or its parent is a multi-array (same check as in the old BaseModel::isArray(const NifItem *)).
    - Added repr() function that returns string representation of the item ("NiTriShape [0]\Vertex Data [3]\Vertex colors").
    
    BaseModel class:
    - Renamed isArray(const NifItem *) method to isArrayEx to show that it and isArray(const QModelIndex &) make different checks.
    - "type" and "temp" methods followed suit of their cousins from NifItem.
    - Fixed "look by child name" overloads of getItem ignoring reportErrors arg if the child name is a path with "\\".
    - If updateArraySize methods fail to find the array by its name, they will report it.
    - Added a string representation function and a couple overloads of reportError for a QModelIndex.
    
    NifModel class:
    - Fixed loadHeader failing to reset "BS Header\BS Version" field because of the preceding reset of "User Version" field making its condition invalid.
    - If setLink or setLinkArray methods fail to find the item by its name, they will report it.
    - Added some new stuff to the map of array singular pseudonyms.
    - Added a couple of quality of life function for working block numbers/links.
    gavrant committed Sep 10, 2023
    Configuration menu
    Copy the full SHA
    84fe938 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    281fcb7 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2023

  1. Configuration menu
    Copy the full SHA
    6f04f6c View commit details
    Browse the repository at this point in the history
  2. Update GNRL BA2 reader for Starfield geometries

    DX10 updates not yet implemented since materials are not parseable anyway.
    hexabits committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    48c2875 View commit details
    Browse the repository at this point in the history
  3. Add UNORM bone weights

    hexabits committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    96a7277 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2de0b93 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2023

  1. Added a few new entries to the array singular pseudonyms map and sort…

    …ed the map alphabetically
    gavrant committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    378c058 View commit details
    Browse the repository at this point in the history
  2. Always hide fields in "Block Details" and "Header" views if they do n…

    …ot pass mesh version or block type checks, even when "Show Non-applicable Rows" option is on.
    
    This makes the views much cleaner by hiding all the fields that are irrelevant to the current mesh (its version) or the current block (for example, doubled "Triangles" and "Vertex Data", or always read-only "Shader Type" in BSTriShapes).
    gavrant committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    2dfcdd4 View commit details
    Browse the repository at this point in the history
  3. Fix View > Show actions

    hexabits committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    a9b2183 View commit details
    Browse the repository at this point in the history
  4. Fix tView actions

    hexabits committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    d0a460c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    13adece View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2023

  1. Fixed Settings dialog blocking all other windows in OS, not just NifS…

    …kope's ones.
    
    It used to stay in the middle of the screen even when you switch to your browser or any other app, covering everything underneath it.
    Now Settings will block only NifSkope's windows and disappear if you switch to another app.
    gavrant committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    cd3a3a2 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2023

  1. Fixed modality of NifBlockEditor dialog (transform edit, etc.)

    It used to stay on top always (even if you switch to another application), but did not block input to the parent mesh window.
    Now NifBlockEditor stays on top of the parent window only and blocks input to it.
    gavrant committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    7be0b42 View commit details
    Browse the repository at this point in the history
  2. Finishing touches to pseudonyms for displaying array items in "Block …

    …Details"
    
    - Added pseudonyms for almost 200 arrays. All the arrays from nif.xml ( https://github.com/niftools/nifxml/tree/develop version) are now covered, with the exception of arrays that don't need pseudonyms or have too generic names ("Data", "Value", "Unknown", ...).
    - Multi-arrays (2-level arrays; e.g., UV Sets, Vertex Weights) got their own pseudonym subsystem, with a different logic.
    - Binary arrays are now ignored because it's always a single item with a "X bytes" value.
    gavrant committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    03ad1c2 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2023

  1. GLView scale for Starfield

    hexabits committed Sep 15, 2023
    1 Configuration menu
    Copy the full SHA
    ed1d9b3 View commit details
    Browse the repository at this point in the history
  2. Add tiny_gltf

    hexabits committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    72040cd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    85886c9 View commit details
    Browse the repository at this point in the history
  4. Adjust move speed for scale

    hexabits committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    cd4ea38 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2023

  1. Few minor tweaks to BaseModel and NifModel

    Most importantly, getItem(const QModelIndex &) got a reportErrors arg, true by default.
    gavrant committed Sep 16, 2023
    Configuration menu
    Copy the full SHA
    718b304 View commit details
    Browse the repository at this point in the history
  2. Fixed expand/collapse of items in NifTreeView (especially in Block De…

    …tails)
    
    - Fixed "smart auto-expand" of subitems in "Block Details" when it's switched to another NiBlock. Now it properly auto-expands Partitions in NiSkinPartition and BSDismemberSkinInstance blocks and properly handles blocks with hidden rows at the end.
    - Fixed accidental selection of multiple items in the view when you mouse-click the expand/collapse icon (">") and this leads to shifting of the expanded/collapsed item in the view.
    gavrant committed Sep 16, 2023
    Configuration menu
    Copy the full SHA
    cce333b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3e68f25 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2023

  1. Configuration menu
    Copy the full SHA
    528f4bc View commit details
    Browse the repository at this point in the history
  2. Change Q/E movement to raise/lower

    setDistance is attainable via several other methods, but there is no easy way to raise/lower.
    hexabits committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    5afcba7 View commit details
    Browse the repository at this point in the history
  3. Add Y-Up and Z-Up matrix functions

    For gltf export and import
    hexabits committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    c695a38 View commit details
    Browse the repository at this point in the history
  4. Change storage of BoneWeightsUNorm

    Also move some type declarations
    hexabits committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    acaf6fe View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    dc4e566 View commit details
    Browse the repository at this point in the history
  6. Further model refactoring (part 4)

    - Fixed NifItem not updating the link children caches on items deletion.
    - Fixed Kfm checking version number in item conditions before it's set up or reset after a change.
    - NifModel::updateArraySizeImpl will now properly detect the presence of links in updated arrays.
    - Fixed all inconsistencies in the starting " " prefix in items' display names.
    - Resolved once and for all Base::isArray(const QModelIndex &) and Base::isArray(const NifItem *) doing somewhat different checks. To make sure that isArray will work properly in the future, added validation checks in nifxml and kfmxml.
    - Added a few utility methods to BaseModel and NifItem.
    - Minor QString performance optimization in NifModel and KfmModel (use QStringBuilder to concat more than 2 strings + turned some common strings into static const QString).
    gavrant committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    2b6aa83 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    49feddd View commit details
    Browse the repository at this point in the history
  8. Merge pull request #48 from gavrant/dev8

    Merge @gavrant dev8
    hexabits authored Sep 19, 2023
    Configuration menu
    Copy the full SHA
    d91221a View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. Fix typo

    Utmost thanks for @UnknownExplorer13 for manually committing my changes without informing me of any issues...
    hexabits committed Sep 21, 2023
    Configuration menu
    Copy the full SHA
    93295b5 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2023

  1. Configuration menu
    Copy the full SHA
    f15626b View commit details
    Browse the repository at this point in the history
  2. glTF Export v1.0

    For Starfield only, currently.
    hexabits committed Sep 22, 2023
    Configuration menu
    Copy the full SHA
    e3bc224 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2023

  1. Create an empty glTF material for each .mat

    Only name right now, until CDB reading.
    hexabits committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    70b610b View commit details
    Browse the repository at this point in the history
  2. Update readmes

    Remove non-existent links, add glTF information for users.
    hexabits committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    9d9dea8 View commit details
    Browse the repository at this point in the history
  3. Increment version

    hexabits committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    23ea2a0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1333dd1 View commit details
    Browse the repository at this point in the history
  5. Fixes

    hexabits committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    76384c8 View commit details
    Browse the repository at this point in the history
  6. Improve glTF material naming

    To prevent truncation in Blender, use the base name and include the full path as an extras.
    hexabits committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    b29d7e7 View commit details
    Browse the repository at this point in the history
  7. Update README_GLTF.md

    hexabits committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    f6ed2e6 View commit details
    Browse the repository at this point in the history