Commit Graph

24503 Commits (09759c66208d61d2bad0e85d7a0438fe3767a93a)
 

Author SHA1 Message Date
Alexei Dobrohotov 09759c6620 Clean up shader lighting 4 years ago
psi29a 3e87c35005 Merge branch 'dialogue' into 'master'
Don't regenerate the topics list unconditionally

See merge request OpenMW/openmw!459
4 years ago
Alexei Dobrohotov e9a8636d18 Merge branch 'restore_absolute_position_handling' into 'master'
Restore pre-async handling of absolute actors positionning

See merge request OpenMW/openmw!486
4 years ago
Alexei Dobrohotov ce36dd8a52 Merge branch 'misc_cleanup' into 'master'
Small cleanup

See merge request OpenMW/openmw!482
4 years ago
fredzio 5bd921fa3a Restore pre-async handling of absolute actors positionning
One of the issue since the introduction of async physics is the quirky
handling of scripted moves. Previous attempt to account for them was
based on detecting changes in actor position while the physics thread is
running. To this end, semantics of Actor::updatePosition() (which is
responsible for set the absolute position of an actor in the world) was
toned down to merely store the desired position, with the physics system
actually responsible for moving the actor. For the cases were complete
override of the physics simulation was needed, I introduced
Actor::resetPosition(), which actually have same semantics as
original updatePosition(). This in turn introduced a loads of new bugs
when the weakened semantics broke key assumptions inside the engine
(spawning, summoning, teleport, etc).
Instead of tracking them down, count on the newly introduced support for
object relative movements in the engine (World::moveObjectBy) to
register relative movements and restore original handling of absolute positionning.

Changes are relatively small:
- move resetPosition() content into updatePosition()
- call updatePosition() everywhere it was called before
- remove all added calls to the now non-existing resetPosition()

tldr; ditch last month worth of bug introduction and eradication and redo
it properly
4 years ago
fredzio 33eb09f534 Remove unused headers 4 years ago
Alexei Dobrohotov 6b5e614b1a Merge branch 'dont_cache_ptr' into 'master'
Always use latest actor's Ptr

See merge request OpenMW/openmw!481
4 years ago
Alexei Dobrohotov eb6dad1a93 Merge branch 'fixstupidtypo' into 'master'
Fix misplaced dummies (#5752)

Closes #5752

See merge request OpenMW/openmw!483
4 years ago
fredzio e5f0c7f117 Fix a typo introduced in 08e73a09ec
It closes #5752
4 years ago
AnyOldName3 6fa315b59e Merge branch 'madsbuvi-master-patch-39387' into 'master'
Disable MSVC warning 4866

See merge request OpenMW/openmw!480
4 years ago
Mads Buvik Sandvei 637c76f438 Update CMakeLists.txt 4 years ago
fredzio 93a12fe388 Avoid dynamic_cast when possible. 4 years ago
fredzio 8e084dea2e Don't cache Ptr, it can be updated while the simulation is running. 4 years ago
fredzio 58297ffbf4 Move stats update into their own function. 4 years ago
fredzio 24a8b8c66a Remove redundant call to resetPosition(). adjustPosition() takes care of
it,
4 years ago
Mads Buvik Sandvei a2a462f416 Update CMakeLists.txt to disable MSVC warning 4866 4 years ago
psi29a a1065c8376 Merge branch 'loadingScreen_initialdrawcallback' into 'master'
Loading screen initialdrawcallback 4th time's the charm

See merge request OpenMW/openmw!479
4 years ago
Mads Buvik Sandvei eec2ba3623 Loading screen initialdrawcallback 4th time's the charm 4 years ago
AnyOldName3 264539cd63 Merge branch 'WindowCrashCatcher' into 'master'
Handle Crashes on Windows

See merge request OpenMW/openmw!455
4 years ago
psi29a 327df7457b Merge branch 'simulationresultinactor' into 'master'
Embed physics simulation results inside of actor class.

See merge request OpenMW/openmw!478
4 years ago
fredzio 4e7c9b6696 Embed physics simulation results inside of actor class.
This gives finer control over reseting positions (switch off tcl is no
longer glitchy) and solve most of the erroneous usage of stale World::Ptr
indicated by:
"Error in frame: moveTo: object is not in this cell"
4 years ago
psi29a d01d5745c6 Merge branch 'relative_move' into 'master'
Relative translation for scripts

See merge request OpenMW/openmw!477
4 years ago
psi29a e586544ade Merge branch 'loadingScreen_initialdrawcallback' into 'master'
Wait for initialDrawCallback to finish before removing it

See merge request OpenMW/openmw!476
4 years ago
Mads Buvik Sandvei ea8f98b339 Wait for initialDrawCallback to finish before removing it 4 years ago
fredzio 7bae6691b6 Introduce World::moveObjectBy() function to translate an object relatively to
its current position.
Use it in relevant MWScripts opcode (move and moveworld).
Remove the fragile detection of scripted translation from PhysicsTaskScheduler.

No user visible change, just a more robust mechanism.
4 years ago
AnyOldName3 691b4d64fe Merge branch 'nigeometry' into 'master'
Make sure NIFLoader avoids working further with empty geometry

Closes #5751

See merge request OpenMW/openmw!475
4 years ago
psi29a 96a87b582c Merge branch 'loadingScreen_initialdrawcallback' into 'master'
Fix for !472 for older versions of OSG

See merge request OpenMW/openmw!474

(cherry picked from commit 35e25d79b9a6c76807084be5ca2584c4fd9b9c35)

4447dd41 osg versions
06f4d63b Preserve callback in older osg version
4 years ago
Alexei Dobrohotov 8db2ba2b38
Merge pull request #3032 from akortunov/gtest
Mark mock methods as overrides (requires GTest 1.10)
4 years ago
Alexei Dobrohotov 46ec40fa92 Make sure NIFLoader avoids working further with empty geometry 4 years ago
AnyOldName3 70bd9d395d Merge branch 'loadingScreen_initialdrawcallback' into 'master'
Clean up use of initial draw callback in loadingscreen

See merge request OpenMW/openmw!472
4 years ago
Mads Buvik Sandvei bc961a13f5 avoid redundant calls to removeInitialDrawCallback 4 years ago
Mads Buvik Sandvei 640420eaaa No longer delete and recreate CopyFramebufferToTextureCallback, remove oneshot functionality. Instead just remove the callback after the traversals. Use addInitialDrawCallback instead of setInitialDrawCallback to avoid messing with existing callbacks. 4 years ago
psi29a 9f81dcbd1a Per request via PM:
"I would like to request that my name is removed from the teams page as my contributions has all been replaced by better solutions years ago." by vorenon, Manuel Edelmann
4 years ago
psi29a 14a80d7d9e Merge branch 'niffix' into 'master'
Turn all NIF records into structs

See merge request OpenMW/openmw!470
4 years ago
Alexei Dobrohotov 1e6156e04a Turn all NIF records into structs 4 years ago
Alexei Dobrohotov 4490f89a3d Merge branch 'dontcollidewithowncollisionbox' into 'master'
Don't explode spell mid-air (#5745)

See merge request OpenMW/openmw!468
4 years ago
fredzio 259d522800 When doing a ray cast to the next projectile position, ignore collisions
that occurs with the projectile own collision object. Otherwise a magic
bolt can explode "spontaneously".
4 years ago
psi29a 884b434ee0 Merge branch 'fixfriendlyfire' into 'master'
Fix projectiles friendly fire (#5744)

See merge request OpenMW/openmw!466
4 years ago
psi29a 78e85fe011 Merge branch 'this_is_nife' into 'master'
More NIF stuff

See merge request OpenMW/openmw!461
4 years ago
psi29a bc6bcda58f Merge branch 'wizard' into 'master'
Wizard: fix "file is already opened" warning

See merge request OpenMW/openmw!465
4 years ago
psi29a ecdd5f1437 Merge branch 'fixosga' into 'master'
Fix collada animation issues

See merge request OpenMW/openmw!467
4 years ago
Nelsson Huotari 8b2bf12e8f Use bip01 for root bone name 4 years ago
Nelsson Huotari 6c1f6169c0 Fix root movement glitch 4 years ago
Nelsson Huotari 3195716a2c Don't force loop textkey 4 years ago
fredzio b39437dfb6 Don't allow projectiles to stand still when they hit an ally.
When an NPC fire a projectile, it should affect only its targeted actor.
To this end, after a hit is detected the target is checked against the
list of AI targets and reactivated if necessary.
Problem occurs when the hit occurs as a result of a friendly actor going
into the projectile (detected in ClosestNotMeConvexResultCallback):
while the projectile is inside the friend's collision box, it is
deactivated, just to be immediately reactivated. Effectively, the
projectile does nothing until the actor moves out.

Add a check inside the ClosestNotMeConvexResultCallback before declaring
a hit.
Since the necessary data is not safely accessible from the async thread,
maintain a copy inside the Projectile class.
4 years ago
Alexei Dobrohotov 53e1e57eef Formatting 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