1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-06 00:40:04 +00:00

600 Commits

Author SHA1 Message Date
Cody Glassman
a4dd9224df Restructure colormasks at higher level 2024-03-23 21:56:30 +00:00
Mads Buvik Sandvei
36e1bdab10 Use a smaller integer type instead of dealing with casting issues. 2024-01-28 14:48:49 +01:00
Mads Buvik Sandvei
a94add741e Lua: Animation bindings 2024-01-26 21:39:33 +00:00
elsid
a2147d70cc
Use forward declaration for some VFS types
This will allow to save on preprocessed code size in the future changes.
2024-01-16 01:32:11 +01:00
elsid
145f7b5672
Avoid using osg::ref_ptr when reference is enough 2023-12-26 11:35:03 +01:00
Mads Buvik Sandvei
f6a6c278dd More cleanup of scripted animations 2023-12-05 14:13:35 +00:00
Mads Buvik Sandvei
93b723a066 Apply legs yaw to accumulated movement. 2023-11-01 20:30:26 +01:00
Mads Buvik Sandvei
afb9fa06d7 clang format 2023-10-29 14:54:01 +01:00
Mads Buvik Sandvei
70f41b22b6 Based on the reason for closing !1845, we *should* let a scripted animation get stuck forever if the animation was already playing. 2023-10-29 14:53:03 +01:00
Mads Buvik Sandvei
92a5e52407 rename "persisted" animations to "scripted", because that is what they actually are. And begin teaching the animation system to distinguish between a scripted and an unscripted animation. 2023-10-29 14:53:03 +01:00
elsid
1d94527a19
Avoid using settings in components to get actor model
Settings::Values are initialized only for engine. Accessing them from other
binaries leads to a crash.
2023-09-27 21:00:46 +02:00
elsid
ad509bb954
Use settings values for Models settings 2023-09-09 13:12:08 +02:00
Andrei Kortunov
35561450f1 Do not copy osg::ref_ptr when possible 2023-07-31 20:43:46 +04:00
elsid
b4868c6094
Filter evade directions by supported animations
To avoid trying those which will not lead to any actor movement due to absent
animation.
2023-07-22 17:30:40 +02:00
elsid
80ae8ce116
Cache supported animations 2023-07-22 17:30:40 +02:00
Evil Eye
7573004efc Implement the NegativeLight flag 2023-07-17 18:00:15 +02:00
elsid
6e8dcc16c6
Use settings values for Game settings 2023-07-01 00:59:35 +02:00
Petr Mikheev
f1beaa7b8c Put ESMStore to Environment 2023-04-20 21:45:49 +02:00
florent.teppe
486d15b19e moved light common to its own file
moved esm4light to it's own file
2023-02-07 16:29:17 +01:00
florent.teppe
dc961e3189 Adds the light into the scene.
Common struct for ESM3 and ESM4 light
2023-02-07 10:07:59 +01:00
Alexei Kotov
6ff9b5d326 Make use of ends_with for KF 2023-01-15 01:48:06 +03:00
unelsson
fe7660eec8 clang-format again 2022-12-31 00:53:36 +02:00
unelsson
d60fd86719 clang format 2022-12-31 00:52:05 +02:00
unelsson
33afcbdc13 Use common function for blendmask detection, remove extra debug logs 2022-12-31 00:35:50 +02:00
unelsson
ffc64205c5 Force collada animation layers, remove nif blend mask detection. 2022-12-31 00:35:50 +02:00
elsid
da15db295e
Fix resetting player's animation on game loading
When game is loaded player's animation is replaced by a new object. Old object
is destructed without explicit removeFromScene call.
2022-10-02 13:50:51 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
florent.teppe
0a5c863f27 fewer header includes 2022-09-08 21:08:59 +02:00
florent.teppe
0dd529ab1d With the records include removed from store.hpp, need to include the relevant files accross the codebase.Lots of touched files, but very little done 2022-09-06 13:26:13 +02:00
Evil Eye
534994b42a Use more string_view in the character controller 2022-08-27 13:47:15 +02:00
Evil Eye
0df45a90b3 Use string_view in the remaining Class methods and push string_views closer to the MyGUI boundary 2022-08-23 22:14:27 +02:00
Evil Eye
42e59878c5 Use string_view in more animation code 2022-08-23 18:25:25 +02:00
psi29a
aa8eba239a Merge branch 'animation_view' into 'master'
Use string_view in animation code

See merge request OpenMW/openmw!2321
2022-08-21 20:05:00 +00:00
elsid
838d75a2e2
Avoid using owning raw pointer 2022-08-21 21:00:29 +02:00
unknown
827a2f0b77 Use string_view in animation code 2022-08-21 18:53:38 +02:00
elsid
5498c169e3
Cleanup openmw render, physics, world, dialogue, gui, input includes 2022-08-17 18:45:52 +02:00
glassmancody.info
066185fbcf override depth write flag from object paging in transparent post-pass 2022-07-30 14:37:49 -07:00
Evil Eye
55134d1e31 Use string_view in the CharacterController 2022-07-26 17:23:00 +02:00
elsid
1e7989c5e5
Remove animation objects from scene outside destructor 2022-07-24 21:08:27 +02:00
elsid
34fd8abf5f
Move Animation::getPtr definitions to header 2022-07-24 17:29:27 +02:00
elsid
bd7f56ddb4
Don't rely on virtual dispatch in constructor
apps/openmw/mwrender/animation.cpp:1841:60: warning: Call to virtual method 'ObjectAnimation::canBeHarvested' during construction bypasses virtual dispatch [clang-analyzer-optin.cplusplus.VirtualCall]
        if (ptr.getRefData().getCustomData() != nullptr && canBeHarvested())
                                                           ^~~~~~~~~~~~~~~~

apps/openmw/mwrender/bulletdebugdraw.cpp:33:5: warning: Call to virtual method 'DebugDrawer::setDebugMode' during construction bypasses virtual dispatch [clang-analyzer-optin.cplusplus.VirtualCall]
    setDebugMode(debugMode);
    ^~~~~~~~~~~~~~~~~~~~~~~

openmw/mwinput/controllermanager.cpp:63:17: warning: Call to virtual method 'ControllerManager::controllerAdded' during construction bypasses virtual dispatch [clang-analyzer-optin.cplusplus.VirtualCall]
                controllerAdded(fakeDeviceID, evt);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-07-06 13:52:28 +02:00
Cody Glassman
ce49aa1202 Attach lights at origin when missing AttachLight node 2022-06-04 13:35:27 +00:00
cody glassman
04843fed6d moddable post-processing pipeline 2022-05-15 10:03:58 -07:00
elsid
4509b05bc8
Use std::make_shared instead of new
make_shared allocates single storage for ref counter and the object.
std::shared_ptr<T>(new T) allocates 2 storages.
2022-04-08 22:50:09 +02:00
Cody Glassman
8ec0a52605 Toggable day night switch (#5928) 2022-01-11 09:34:19 +00:00
cody glassman
8216410e7d add white ambient to spell VFX as in Morrowind 2022-01-08 16:19:42 -08:00
Alexei Dobrohotov
fd58e5ba77 Use the anim source to find mAccumRoot (bug #6417) 2021-11-23 04:53:03 +03:00
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.
2021-11-04 16:53:57 +01:00
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`.
2021-10-30 22:43:18 +02:00
Bo Svensson
7f9beac3a7
refactors a case insensitive map (#3184)
This PR aims to spark the retirement of a questionable pattern I have found all over our code base. I will illustrate how this pattern encourages code duplication, lacks type safety, requires documentation and can be prone to bugs.
```
std::map<std::string, Object> mMap; // Stored in all lowercase for a case-insensitive lookup

std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.emplace(lowerKey, object);

std::string lowerKey = Misc::StringUtils::lowerCase(key);
mMap.find(lowerKey);

mMap.find(key); // Not found. Oops!
```
An alternative approach produces no such issues.
```
std::unordered_map<std::string, Object, Misc::StringUtils::CiHash, Misc::StringUtils::CiEqual> mMap;

mMap.emplace(key, object);

mMap.find(key);
```
Of course, such an alternative will work for a `map` as well, but an `unordered_map` is generally preferable over a `map` with these changes because we have moved `lowerCase` into the comparison operator. 

In this PR I have refactored `Animation::mNodeMap` accordingly. I have reviewed and adapted all direct and indirect usage of `Animation::mNodeMap` to ensure we do not change behaviour with this PR.
2021-10-25 09:18:26 +02:00