Commit Graph

26750 Commits (6cf74f7041c120f25e27d54b579ee19bd62bc2a5)
 

Author SHA1 Message Date
Bo Svensson 6cf74f7041
refactors ESM::Land (#3213)
With this PR we reduce coupling, simplify code, encapsulate a variable and separate actual `ESM` data from its context.
3 years ago
Bo Svensson 1979ee1491
refactors hashed std::map (#3199)
We currently apply a strange algorithm to `LightManager::mStateSetCache`. For some reason this algorithm inserts hashed keys into `std::map` in a way that fails to handle hash collisions and exhibits worse lookup complexity than `std::unordered_map`. With this PR we just use `std::unordered_map` here.
3 years ago
Bo Svensson 3042c000c6
fixes setActorFade logic errors (#3195)
* resets state updater to apply light settings (#3141)

resets state updater to apply light settings

With this PR we achieve the same effect with fewer lines of code.

* fixes LightSource logic errors

We currently update `LightSource::setActorFade` in `TransparencyUpdater`. There are several logic errors inherent in this approach:
1. We fail to update `LightSource::setActorFade` for off screen actors because their `TransparencyUpdater` cull callback is not invoked.
2. We fail to update `LightSource::setActorFade` in the instant that a `TransparencyUpdater` is removed.
3. We fail to update `setActorFade` when an `mExtraLightSource` is created after calling `Animation::setAlpha`.
With this PR we avoid such issues by updating `LightSource::setActorFade` in `Animation::setAlpha` and `Animation::addExtraLightSource` instead.
3 years ago
Bo Svensson f684c1da52
fixes assertion (#3215)
This PR fixes an assertion introduced by #3211. For some reason my build originally did not contain assertions despite passing `DEBUG` into cmake, but after deleting `CMakeCache.txt` I have now hit the assertion @glassmancody reported as well.
3 years ago
psi29a 2d3c6faec4 Merge branch 'conditional_push_builds' into 'master'
Add support for daily builds

See merge request OpenMW/openmw!1314

(cherry picked from commit 50ea9869528c984b8ea66864fa08f5f710734eff)

1ee18b88 Update .gitlab-ci.yml file
603b0ad8 Update .gitlab-ci.yml
a69cc468 Update .gitlab-ci.yml
3 years ago
Bo Svensson fac84b5dd3 restores ESM::Dialogue order (#3209)
With this PR we restore the previous order of `ESM::Dialogue` entries implicitly changed by PR #3197. In the future we may want to consider additional verification and documentation of `mShared` order inconsistencies. We might additionally consider applying this sorting in the particular code that requires it.
3 years ago
psi29a c9f3c27dc7 Merge branch 'phys_perf_test' into 'master'
Help bullet optimize collisions with very complex collision meshes by making small collision tests if possible

See merge request OpenMW/openmw!1317
3 years ago
Bo Svensson 4657c655b1 refactors parentFileIndices (#3211)
This PR aims to start addressing `ESM` design issues that have silenced errors we incorporated into groundcover `ESM` loading approaches.

- We move the resolution of `parentFileIndices` from `ESMStore` to `ESMReader` as suggested in a `TODO` comment.
- We improve a highly misleading comment which downplayed the significance of `parentFileIndices`.
- We document important preconditions.
- We move a user facing error message to the highest level and improve its context.
- We remove an inappropriate `setGlobalReaderList` method. We now pass this reader list into the method that requires it.
- We remove a thoroughly pointless optimisation of `Store<ESM::LandTexture>`'s construction that has unnecessarily depended on `getGlobalReaderList`.

There should be no functional changes for `master`, but this PR should remove an issue blocking PR #3208.
3 years ago
psi29a a5bfec610c Merge branch 'refactor_bullet_nif_loader' into 'master'
Refactor BulletNifLoader

See merge request OpenMW/openmw!1344
3 years ago
elsid 2b057f5c15
Expect nif node children to have parent 3 years ago
elsid 19843af704
Combine data check with data handling logic 3 years ago
elsid 4e8e8304aa
Avoid mesh allocation when data is invalid 3 years ago
elsid 4ac83f4c39
Add separate function to handle NiGeometry node
To force use a single source of data. All fields of Nif::Node are available in NiGeometry.
3 years ago
elsid 56eef691a8
Use reference type to pass nif node as argument where nullptr is not handled 3 years ago
elsid 4631d95739
Add more tests for BulletNifLoader 3 years ago
psi29a 523289c531 Merge branch 'refactor_bullet_shape' into 'master'
Refactor bullet shape

See merge request OpenMW/openmw!1333
3 years ago
psi29a 4ff4afd50b Merge branch 'lua_callback' into 'master'
Refactoring. Lua `Callback` is moved from apps/openmw/mwlua to components/lua.

See merge request OpenMW/openmw!1334
3 years ago
psi29a cb3ab21c13 Merge branch 'recast_mesh_object' into 'master'
Store holder only in parent RecastMeshObject

See merge request OpenMW/openmw!1332
3 years ago
psi29a ea7e83499d Merge branch 'enlightened_skeletons' into 'master'
Allow creatures to use torches

Closes #6376

See merge request OpenMW/openmw!1335
3 years ago
psi29a c50aee9434 Merge branch 'blaze_it' into 'master'
Rotate lights by 90 degrees

Closes #5937

See merge request OpenMW/openmw!1343
3 years ago
Evil Eye a9106f4d7c Rotate torches by 90 degrees 3 years ago
wareya 940e338453 Constifications 3 years ago
Bo Svensson 213faa6695
restores countRecords optimisations (#3210)
With this PR we restore @elsid 's optimisations of countRecords we have unintentionally discarded in PR #3197. In addition, we give it a more appropriate name and add comments concerning its peculiar background.
3 years ago
psi29a d3b2503111 Merge branch 'distractions' into 'master'
Reduce code duplication in getting the shield model

See merge request OpenMW/openmw!1337
3 years ago
psi29a 9694398b69 Merge branch 'actually_walk_on_the_water' into 'master'
#6373: finish half commited commit

See merge request OpenMW/openmw!1336
3 years ago
psi29a 26ee2d284e Merge branch 'rtd' into 'master'
Fix readthedocs config, second attempt.

See merge request OpenMW/openmw!1342
3 years ago
psi29a 4d71e26ac8 Merge branch 'astoecke-fix-osg-341-pif' into 'master'
Fix compilation with OpenSceneGraph 3.4.1 (#6381)

Closes #6381

See merge request OpenMW/openmw!1339
3 years ago
Petr Mikheev 20f851b3b5 Fix readthedocs config, second attempt. 3 years ago
Andreas Stöckel a5a895ffd4 Fix #6381
Do not use osg::PI_f
3 years ago
AnyOldName3 ade3c2c61b Merge branch 'rtd' into 'master'
Fix readthedocs config

See merge request OpenMW/openmw!1340
3 years ago
Petr Mikheev 665d756f02 Fix readthedocs config 3 years ago
Evil Eye 3660d5cc4c Reduce code duplication in getting the shield model 3 years ago
fredzio 8c21b0b503 Apply waterwalking even when we skip simulation.
This chunk was supposed to be part of !1324 but somehow got stuck staged in my tree.
3 years ago
Evil Eye 92bdd44e58 Allow creatures to use torches 3 years ago
Petr Mikheev e7ec89573e Refactoring. Lua `Callback` is moved from apps/openmw/mwlua to components/lua. 3 years ago
psi29a 8c06558cf8 Merge branch '6375' into 'master'
Fix regression #6375

Closes #6375

See merge request OpenMW/openmw!1331
3 years ago
Bo Svensson b9911da4c7
applies lightMask (#3201)
With this PR we apply `lightMask` to a `Transform` node we create specifically for a light. This mask will allow us to stop traversing such nodes sooner and avoid costly processing associated with `Transform` nodes in the cull visitor.
3 years ago
Bo Svensson d88d006984
fixes getViewDistance (#3207)
I have been informed by @akortunov that my addition of `Groundcover::getViewDistance` is not working in some cases. Investigations revealed that some `ViewData` code interacting with my additions had been quite thoroughly optimised in a way that was not sufficiently documented and interfered with the new feature. With this PR we repair `getViewDistance` while preserving such optimisations and add a necessary comment to avoid issues in the future. In addition, we now rebuild views when the global `mViewDistance` changes.
3 years ago
Evil Eye 3c40935ec1 Fix regression #6375 3 years ago
Bo Svensson 356e9d7cf0
refactors osg::Callback virtual inheritance (#3200)
With this PR we refactor `SceneUtil::KeyframeController` not to require `virtual osg::Callback` inheritance. I suppose such `virtual` overhead is not justified here because it negatively impacts many other classes we derive from `osg::Callback`.
3 years ago
psi29a 4c81518abb Merge branch 'puddle' into 'master'
Give each reflect and spell absorption effect a chance to apply

Closes #6255 and #6253

See merge request OpenMW/openmw!1279
3 years ago
psi29a 3eb6b658c6 Merge branch 'setpos_strikes_back' into 'master'
#6292 unbreak scripted spells

See merge request OpenMW/openmw!1324
3 years ago
psi29a 740045f7d6 Merge branch 'test_compiler' into 'master'
Add unit tests for the mwscript compiler

See merge request OpenMW/openmw!1325
3 years ago
psi29a 15cb9f886c Merge branch 'launcher_omwscripts' into 'master'
Support *.omwscripts in openmw-launcher

See merge request OpenMW/openmw!1329
3 years ago
Bo Svensson 1329f22186
refactors MWWorld::Store maps (#3197)
With this PR we clean up `MWWorld::Store` maps according to the approach of PR #3184.
3 years ago
Bo Svensson 7d34149adc
consolidates createUnlitMaterial (#3203)
With this PR we remove a few duplicate lines of code by adding a parameter to `createUnlitMaterial`.
3 years ago
Bo Svensson 7e6533f0f3
refactors screenshot360 (#3202)
With this PR we refactor screenshot360 not to manually adjust node masks.
3 years ago
Evil Eye ae08f942d5 Test binary operators 3 years ago
Evil Eye 3c5a50cf90 Add issues from Redmine 3 years ago
Evil Eye 319d30fb85 Add AddTopic testing 3 years ago