Alexei Kotov
2edf3399e2
Modernize extra data records
1 year ago
Alexei Kotov
8a7e8a89ac
Modernize Bethesda Havok records
1 year ago
Alexei Kotov
bb6e008801
Modernize dynamic effects
1 year ago
Alexei Kotov
2e847a12c4
Modernize NiSourceTexture and BSShaderTextureSet
1 year ago
Alexei Kotov
fb8ead2bd4
Rename nif/controlled to nif/texture
1 year ago
Alexei Kotov
4a88726aba
Move particle modifiers into a dedicated file
1 year ago
Alexei Kotov
1d05aa2e37
Modernize particle modifiers
1 year ago
Alexei Kotov
f8b2967dab
Alphabetize NIF record type list
1 year ago
Alexei Kotov
4140f9da3c
Reorganize the list of recognized NIF records
1 year ago
Alexei Kotov
4e156f2a7d
NIFStream: improve handling of ranges and aligned types
1 year ago
Alexei Kotov
57144accf6
Phase out NIFStream::get[Types]
1 year ago
Alexei Kotov
e7bbfed1fd
Read BSTriShape bounds into array
1 year ago
Alexei Kotov
6dca3e68a6
NIFStream: don't read vectors of zero length
1 year ago
Alexei Kotov
d078907dcb
NIFStream: rewrite loading for everything
...
Replace overloading with read() template specializations for every type that needs specific handling
Make use of the new read() or get() in all methods
Move complex string-related methods to implementation
1 year ago
Alexei Kotov
ce13f05187
NIFStream: clean up comments
1 year ago
Alexei Kotov
e8f9a918ae
NIFStream: use the right function for readArray
1 year ago
Alexei Kotov
4f549c267f
NIFStream: rename input stream and file methods
...
To conform to modern style conventions
1 year ago
Alexei Kotov
62d643f668
NIFStream: Drop LittleEndian from reading methods
...
This is just noise. We don't clarify reading endianness for any other file format.
1 year ago
Alexei Kotov
aed440ce64
Clean up error handling in NIFStream reading
...
No particular reason to introduce is_arithmetic specifically for 16-bit floats, there's no significant code duplication
Bypassing getBoolean() could be error-prone for records that are shared between pre-4.2 and post-4.2 formats
1 year ago
Alexei Kotov
ee7accf3bd
Don't read affected nodes for 10.0.1.0 NiDynamicEffect
1 year ago
Alexei Kotov
baefff323c
Make some NIF loading messages less confusing
1 year ago
Alexei Dobrohotov
de50f30645
Read a couple of Bethesda-specific controller records
...
BSMaterialEmittanceMultController
BSRefractionFirePeriodController
BSRefractionStrengthController
1 year ago
psi29a
c290754077
Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
...
This reverts merge request !3267
1 year ago
Petr Mikheev
0487bf95d1
Merge branch 'coverity49' into 'master'
...
Fix some Coverity warnings
See merge request OpenMW/openmw!3286
1 year ago
elsid
dd54857610
Add missing array include
1 year ago
Andrei Kortunov
d8ec78d732
Fix some Coverity warnings
1 year ago
alekulyn
d2896945e8
Load SSE alchemy table
1 year ago
psi29a
466b2f1b74
Merge branch 'mantlingtalos' into 'master'
...
Copy triangle data from NiSkinPartition, a.k.a. SKYRIM TREES
See merge request OpenMW/openmw!3235
1 year ago
Alexei Kotov
3f252eab5d
Copy triangle data from NiSkinPartition
1 year ago
Alexei Kotov
d6e420fb48
Handle BSShader specular flag
1 year ago
psi29a
62ef209185
Merge branch 'readingbooksbutnotquite' into 'master'
...
Read bhkLimitedHingeConstraint
See merge request OpenMW/openmw!3254
1 year ago
psi29a
686281d276
Merge branch 'helgenkeepcalm' into 'master'
...
NIF additions relevant to Helgen Keep
See merge request OpenMW/openmw!3252
1 year ago
Alexei Kotov
6b6a3bcfca
Make decal rendering more accurate for Skyrim models, reducing Z-fighting
1 year ago
Alexei Kotov
6c4957fe4a
Read bhkLimitedHingeConstraint
1 year ago
Alexei Kotov
d2c797aee9
Read BSDamageStage
1 year ago
Alexei Kotov
5a3dce160c
Read NiBoolTimelineInterpolator
1 year ago
Alexei Kotov
4265524ad5
Read BSRangeNode and BSBlastNode
1 year ago
Alexei Kotov
fa39f04a3a
Read BSBehaviorGraphExtraData
1 year ago
Alexei Kotov
e710e94304
Read BSLightingShaderPropertyColorController
1 year ago
Alexei Kotov
c34157fc28
Fix bhkConstraintMotorCInfo loading
1 year ago
psi29a
5bc06b3678
Merge branch 'bhkconstraint' into 'master'
...
Read bhkRagdollConstraint and bhkHingeConstraint
See merge request OpenMW/openmw!3231
1 year ago
Alexei Kotov
65fe89d8af
Read NiTextureTransformController
1 year ago
Alexei Kotov
ed8fd81714
Don't mess with A/B hardcoding in constraints
1 year ago
Alexei Kotov
eb3e762c50
Read bhkHingeConstraint
1 year ago
Alexei Kotov
83be42893d
Read bhkRagdollConstraint
1 year ago
Alexei Kotov
723f5c58e1
Add bhkConstraint
1 year ago
Alexei Kotov
d8f50553af
Move Skyrim shader property controllers to controllers
1 year ago
alekulyn
b085a52681
Add template Nif record
1 year ago
alekulyn
4b90352c2f
Add RC value to BSLightingShaderPropertyFloatController and change the revelant RC value in niffile
1 year ago
alekulyn
589726d4f8
Enchanting table fully ready
1 year ago
alekulyn
ed532b5aca
Add BSEffectShaderPropertyFloatController record reading
1 year ago
alekulyn
7ea2ea96b6
Read new nodes pt1
1 year ago
psi29a
d9027f7eef
Merge branch 'falloutfalloffnthtimesthecharm' into 'master'
...
BSEffectShader/NoLighting fixes
See merge request OpenMW/openmw!3211
1 year ago
Alexei Dobrohotov
52a16e0e93
BSEffectShader/NoLighting fixes
...
Don't hijack BSShader::NoLighting for BSEffectShader functionality
(Fallout meshes break if you use the actual emissive color as a base color)
Don't use falloff for textureless NoLighting objects
Use falloff flag for BSEffectShader
1 year ago
alekulyn
74aa7b947a
Load BSTriShape NIF nodes
1 year ago
alekulyn
683fb0a342
Templated nif reader function modelled after cc9cii's reader
2 years ago
alekulyn
dc860ca302
Load BSInvMarker NIF nodes
2 years ago
Petr Mikheev
788a4d32aa
Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty.
2 years ago
Petr Mikheev
e74161ea8e
Merge branch 'slashrslashmarijuanaenthusiasts' into 'master'
...
Improve Skyrim tree loading (limited)
See merge request OpenMW/openmw!3054
2 years ago
Alexei Dobrohotov
a983977e6a
Fix NiSkinData loading for >4.2.1.0
2 years ago
Alexei Dobrohotov
1b5e904285
Read BSMultiBound et al.
2 years ago
Evil Eye
9728024978
Replace compare with more idiomatic methods
2 years ago
Alexei Dobrohotov
3e8a9d1de4
Read BSTreeNode, handle as NiNode
2 years ago
Petr Mikheev
493858127a
Drop NIF root node transformation for Skyrim models the same way as for Morrowind models.
2 years ago
Alexei Kotov
d8dad79195
Read bsLeafAnimNode
2 years ago
Alexei Kotov
9618a465ce
Read bhkCompressedMeshShape
2 years ago
Alexei Kotov
fc6bc90c3d
Read BSFurnitureMarkerNode
2 years ago
Alexei Kotov
2de81738c1
Implement the basics of BSEffectShaderProperty
2 years ago
Alexei Kotov
99aa90f90c
Rewrite NiVertexColorProperty
2 years ago
Alexei Kotov
d39127cc3d
Add NiTriBasedGeomData abstraction
2 years ago
psi29a
de2bd6d802
Merge branch 'nistringpalette' into 'master'
...
Fix NiStringPalette loading again
See merge request OpenMW/openmw!2703
2 years ago
Alexei Kotov
a4ddf443ed
Fix NiStringPalette loading
2 years ago
Alexei Kotov
c8430ee6c8
Clean up fillTriangleMesh for NiTriStrips
2 years ago
psi29a
a41cbfb349
Merge branch 'candles' into 'master'
...
Read NiBlendInterpolator records, fill in NiControllerManager fields
See merge request OpenMW/openmw!2700
2 years ago
elsid
2c43a8558a
Add option to disable debug log for unsupported nif files
...
It becomes quite extensive and not very useful when loading oblivion content
files.
2 years ago
Alexei Kotov
d7834c43e5
Fill in NiControllerManager fields
2 years ago
Alexei Kotov
091fcd837e
Read all the NiBlendInterpolator record types
2 years ago
Alexei Kotov
7ecf018743
Add NiBlendInterpolator
2 years ago
Alexei Kotov
41d6ccd3f6
Read NiDefaultAVObjectPalette
2 years ago
psi29a
5f9332751c
Merge branch 'roottrafo' into 'master'
...
Don't discard root node transformations for Gamebryo meshes
See merge request OpenMW/openmw!2697
2 years ago
Alexei Kotov
b14d1f0c6b
Don't discard root node transformations for Gamebryo meshes
2 years ago
Alexei Kotov
8ebdd1e4a5
Fix material data loading for 10.0.1.0
2 years ago
Alexei Kotov
115c30a573
Read bhkConvexTransformShape
2 years ago
Alexei Kotov
9f28a26b25
Read NiSequence/NiControllerSequence
2 years ago
jvoisin
3cbf1dc042
First pass with include-what-you-use
2 years ago
elsid
06f7e8088e
Check for negative record list length
2 years ago
elsid
0688b6de40
Separate record list reading from its state
...
To make it possible to set record list state independently from reading NIF
file.
2 years ago
elsid
c338c1e5d3
Add Nif::FileView as read only interface for Nif::NIFFile
...
To make sure interface is scoped to what users require.
2 years ago
elsid
f2fb3d6de8
Separate NIFFileReader from NIFFile
...
NIFFile might not always be created from a file or stream containing NIF data.
Basically there are 2 different responsibilities for this class:
1. Read NIF file
2. Provide input for nifosg and bulletnifloader.
Remove no longer needed NIFFileMock since the state of NIFFfile can be
initialized independently from reading NIF file.
2 years ago
elsid
b39ccbeeef
Remove NIFFile::warn and NIFFile::fail functions
...
These functions use NIFFile only as context, they are not really a part of
either reading nor state invariant. And they only confuse reader because it's
not immediatelly obvious that no code is executed after fail.
2 years ago
clang-format-bot
ddb0522bbf
Apply clang-format to code base
2 years ago
Alexei Kotov
7aee22be91
Further controller updates
...
Correct NiMaterialColorController base class
Load everything in NiGeomMorpherController
Make a guess at how weighted interpolators might be supposed to work like
2 years ago
Alexei Kotov
e2ed313389
Don't load keys for Gamebryo morphs
2 years ago
psi29a
d1c79fa8d1
Merge branch 'pre_clang_format_fixes_2' into 'master'
...
Fixes before applying clang-format 2
See merge request OpenMW/openmw!2401
2 years ago
Alexei Kotov
482de23893
Streamline NiInterpController handling
2 years ago
elsid
410a2881fe
Add comma to the last array element to prevent putting multiple elements on a single line
2 years ago
Project579
2df8bfed25
Fix build errors after rebase against master due to large amount of changes.
2 years ago
Project579
a13709c510
Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions.
2 years ago
Project579
e5c417c968
Make sure all paths are passed as std::filesystem::path instead of std::string where possible.
2 years ago
Alexei Kotov
f17b1cd7ab
Load bhkCapsuleShape and bhkSphereShape
2 years ago
Alexei Kotov
44fbb5cdc3
Read NiMultiTargetTransformController
2 years ago
Alexei Kotov
8df0587793
Reformat NIF record type mapping
2 years ago
Alexei Kotov
126090bdc5
Load NiBillboardNode mode field
2 years ago
psi29a
5ee4ce1232
Merge branch 'nipixeldata' into 'master'
...
Support more NiPixelData formats (feature #6945 )
Closes #6945
See merge request OpenMW/openmw!2290
2 years ago
Alexei Kotov
edbd05a3f7
Support more NiPixelData formats (feature #6945 )
2 years ago
elsid
cc8c7002ea
Cleanup components includes
2 years ago
psi29a
bb9884c024
Merge branch 'split_stringops' into 'master'
...
Split components/misc/stringops.hpp into multiple headers
See merge request OpenMW/openmw!2233
2 years ago
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
...
Replace all ciEqual overloads with one having std::string_view as argument.
2 years ago
Alexei Kotov
014de72644
Use NiParticleSystemController's color for the initial particle color
2 years ago
Andrei Kortunov
c36c28e8f9
Move NIF implementation to cpp files
2 years ago
elsid
6c8ed4d19c
Move Files::IStreamPtr alias to a separate header
...
To avoid transitive include of Windows.h all over the engine.
2 years ago
glassmancody.info
0954597fa7
fix typo with wrong flags in particle nifloader
3 years ago
elsid
bef15edf0b
Remove redundant ostream, istream, iostream and sstream includes
...
* Replace by std::to_string and operator+ where possible.
* Move the code requiring to include <sstream> from .hpp to .cpp files.
3 years ago
Alexei Kotov
e673f9fa76
Clean up NIF flags
3 years ago
Alexei Kotov
e6f7a2f1ef
Correct NiBoundingVolume loading
3 years ago
cody glassman
72fdf40e06
better support for particle arrays when spawning at node positions
3 years ago
elsid
94c1d0cced
Use unique_ptr to store istream
3 years ago
fredzio
d05a2facf3
Handle NCC flag in Nif files. Objects with this flag will collide only with camera.
...
Expose objects with NC flag to be used by Lua mods.
3 years ago
Wolfgang Lieff
373776170d
refactor for NiFltAnimationNode
3 years ago
Bret Curtis
0db5415976
refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md
3 years ago
Wolfgang Lieff
ead73fce31
initial NiFltAnimationNode support
3 years ago
Alexei Dobrohotov
c28f997c87
Make NiPlanarCollider finite-size
3 years ago
Alexei Dobrohotov
9d8f6064a1
Detail the unused parts of controlled.cpp defs
3 years ago
Alexei Dobrohotov
54df5031b7
Add XYZ rotation axis order support
3 years ago
Alexei Dobrohotov
76ba5025e3
Clarify root node transformation discard
3 years ago
psi29a
b011809056
Merge branch 'master' into 'sort_me_baby_one_more_time'
...
# Conflicts:
# components/nif/niffile.cpp
3 years ago
elsid
e1fe501013
Use proper type for Record::recType
3 years ago
elsid
283b68025c
Avoid possible race condition on NIFFile::sLoadUnsupportedFiles
...
Its value is written from the main thread but other threads read it.
3 years ago
elsid
fbd95516f4
Repalce raw for-loops by corresponding algorithms
3 years ago
elsid
082810f924
Store record type as a part of construct function type
3 years ago
elsid
d097c16206
Use unique_ptr to manage nif record lifetime
3 years ago
glassmancody.info
712107de2d
nisortadjust support
3 years ago
Alexei Dobrohotov
85053941b3
Properly postprocess NiSortAdjustNode
3 years ago
glassmancody.info
88f02913d5
use vertex emitters on array particle controllers when appropriate
3 years ago
elsid
3f14011087
Support multiple parents for NIF nodes
...
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.
For example:
p1 p2
\ /
c
Will be handled as:
p1 p2
| |
c c
If c has children they will be handled X times c is handled.
3 years ago
Alexei Dobrohotov
b5a7ad6d62
Fix multilayer parallax parameter reading
3 years ago
Alexei Dobrohotov
9b2978f143
Rehash morph loading rehashing
3 years ago
Alexei Dobrohotov
26dfce1114
Rehash key group and morph loading (bug #6517 )
3 years ago
psi29a
59ab947f3b
Merge branch 't800' into 'master'
...
Keep only one '\0' in NIF strings (bug #6473 )
Closes #6473
See merge request OpenMW/openmw!1458
3 years ago
psi29a
6c7dc2d72f
Merge branch 'assorted' into 'master'
...
Load NiSortAdjustNode and NiAccumulators
See merge request OpenMW/openmw!1396
3 years ago
Alexei Dobrohotov
dd15b30a27
Keep only one '\0' in NIF strings (bug #6473 )
3 years ago
elsid
a665a38aca
Use MurmurHash3_x64_128 for file hash
3 years ago
Alexei Dobrohotov
63ea57e9cf
Load NiSortAdjustNode and NiAccumulators
3 years ago
Alexei Dobrohotov
50b90a594d
Loading and basic handling of BSLightingShaderProperty
3 years ago
Alexei Dobrohotov
d347f8f4f0
Fix build
3 years ago
Alexei Dobrohotov
25f4d05c2e
Load bhkRigidBody
3 years ago
Alexei Dobrohotov
c01fff280a
Load bhkConvexVerticesShape, bhkBoxShape, bhkListShape
3 years ago
Alexei Dobrohotov
83aa96e38f
Load a bunch of triangle strip-based Havok records
3 years ago
Alexei Dobrohotov
e7cc76bba2
Load bhkMoppBvTreeShape
3 years ago
Alexei Dobrohotov
59ce00f742
Refactor all present Bethesda Havok 'support'
3 years ago
psi29a
41bd20e358
Merge branch 'bullet_shape_hash' into 'master'
...
Store BulletShape source file name and content hash
See merge request OpenMW/openmw!1379
3 years ago
elsid
d7041613ef
Store BulletShape source file name and content hash
3 years ago
Alexei Dobrohotov
cc4c96d0f1
Follow global naming convention for new records
3 years ago
Alexei Dobrohotov
6e5b45453d
some physics stuff idk
3 years ago
Alexei Dobrohotov
6de9b49d3d
Remove an empty line
3 years ago
Alexei Dobrohotov
923756b407
Load NiControllerManager
3 years ago
Alexei Dobrohotov
41097352a8
Load BSDismemberSkinInstance
3 years ago
Alexei Dobrohotov
5571099147
Load NiCollisionObject and bhkCollisionObject
3 years ago
Alexei Dobrohotov
9500afaa5a
Load BSFurnitureMarker
3 years ago
Alexei Dobrohotov
66a1adc31e
Handle NiExtraData *properly*
3 years ago
Alexei Dobrohotov
d5ab6e40ab
Handle NiExtraData
3 years ago
jvoisin
aec3c74fa5
Sprinkle some [[noreturn]] where possible
4 years ago
Dobrohotov Alexei
19f0b80983
Improve null root handling
4 years ago
elsid
87ada56edd
Various fixes for niftest
4 years ago
Andrei Kortunov
696cf9ab05
Extend variables range to avoid integer overflow
4 years ago
Alexei Dobrohotov
2fdbe9b3f6
Handle BSShader[PP/No]LightingProperty
4 years ago
Andrei Kortunov
a22f6b24d5
Init animation key struct before usage
4 years ago
Petr Mikheev
eaaa2f4a1c
Use misc/endianness.hpp in components/nif/nifstream
4 years ago
Andrei Kortunov
33648313a6
Initialize variables
4 years ago
Andrei Kortunov
801e2d6ad0
Avoid to use uninitialized variables
4 years ago
Alexei Dobrohotov
1e6156e04a
Turn all NIF records into structs
4 years ago
Alexei Dobrohotov
085ea44af5
Add BSShaderLightingProperty abstraction
4 years ago
Alexei Dobrohotov
c0b9823372
Read BSShaderProperty and handle NiGeometry properties
4 years ago
Alexei Dobrohotov
42226533d8
Handle BSLODTriShape
...
Its levels of detail are currently not handled
4 years ago
Alexei Dobrohotov
8fd45d85ec
Unify NiGeometry/NiGeometryData handling
4 years ago
Alexei Dobrohotov
5310dd6807
Clean up particle vertex handling
4 years ago
Alexei Dobrohotov
1c83e4936d
Read BSShaderTextureSet and NiColorInterpolator
...
Accept boolean-based and 4D vector-based NiInterpolators in ValueInterpolator constructor
4 years ago
Alexei Dobrohotov
db9c174ca8
Make NIF particle node handling more generic
4 years ago
Alexei Dobrohotov
df9667e923
Read NIF bounding volume data correctly
4 years ago
Alexei Dobrohotov
117697ea22
Fix NiStringPalette loading
4 years ago
Alexei Dobrohotov
a46699fb1e
Handle NiGeomMorpherController interpolator list
4 years ago
Alexei Dobrohotov
f3f5dcb016
Read a few more NIF types
...
NiFloatInterpolator, NiPoint3Interpolator, NiTransformInterpolator, NiBoolInterpolator
Update a few existing controller records
Update NiSkinInstance
4 years ago
Alexei Dobrohotov
c857588ee9
Remove NIFFile settings manager dependency
4 years ago
Alexei Dobrohotov
1d07361f08
Read a few more NIF types
...
BSXFlags, NiTransformData, BSBound, BSFadeNode, bhkBlendController
4 years ago
Alexei Dobrohotov
a38c629425
Read NiSkinPartition
4 years ago
Alexei Dobrohotov
afea11b70a
Read NiStringPalette and NiBoolData
4 years ago
Alexei Dobrohotov
7e63afdecf
Allow loading arbitrary NIF files
4 years ago
Alexei Dobrohotov
4fc5e22e9e
NIF fixes and cleanup
...
Get rid of NodeIndexHolder
Use unsigned 32-bit type for NIF record index
Fix calculation of the number of UV sets
4 years ago
Andrei Kortunov
8ca3c3b123
Mark overrided methods by override keyword
4 years ago
Alexei Dobrohotov
05cd005b30
Fix NiTriStripsData loading
4 years ago
Alexei Dobrohotov
df1014303d
Add more generic extra data NIF types
4 years ago
Alexei Dobrohotov
0d02a3392a
Clean up
4 years ago
Alexei Dobrohotov
e7c37f21b7
Add NiFloatInterpController abstraction
4 years ago
Alexei Dobrohotov
29ccb09da5
Introduce some extended NIF definitions
4 years ago
Alexei Dobrohotov
4e22c2687f
niffile.cpp cleanup
4 years ago
Capostrophic
aa131262ea
Implement quadratic interpolation for scalars and vectors
4 years ago
Bret Curtis
0d1b7fd3f0
Merge pull request #2908 from Capostrophic/uvsets
...
Remove 63 UV set limit
5 years ago
Capostrophic
6f94848dec
Remove 63 UV set limit (now 65535)
5 years ago
Capostrophic
7aca18f92b
Handle NiLines (feature #5445 )
5 years ago
Capostrophic
b665fed8f2
Introduce NiGeometry abstraction
5 years ago