elsid
a59e25e093
Optimize MWRender::Animation::hasAnimation
...
Use a set to check for group start existence.
Reduce time taken from 2.6% to 0.08% and
MWMechanics::MechanicsManager::update from 7% to 5%
in relative CPU time usage for a scene with ~100 actors.
2020-05-21 16:21:11 +02:00
elsid
8e0934cbd8
Single AI package clone definition
2020-05-20 20:15:29 +02:00
elsid
103188b61d
Derive all AI package classes from template to support CRTP features
2020-05-20 20:15:29 +02:00
Bret Curtis
88a7ecc18d
Merge pull request #2528 from akortunov/effectstime
...
Use real time to update spell effects
2020-05-18 11:07:48 +02:00
Bret Curtis
730d0493db
Merge pull request #2856 from elsid/aisequence_cleanup
...
AiSequence cleanup
2020-05-18 09:47:36 +02:00
Bret Curtis
72507e57c6
Merge pull request #2857 from elsid/aipackage_cleanup
...
Remove redundant explicit dtor definition for AiPackage
2020-05-18 00:13:30 +02:00
elsid
a4fbcb8a10
Remember package iterator to erase it from list without find call
2020-05-17 22:37:44 +02:00
elsid
d48eead038
Check type id of current package
...
If package is changed the following usage of it is not consistent.
2020-05-17 22:34:15 +02:00
elsid
f566ab03ab
Mark overriden AiPackage methods as final
2020-05-17 22:19:50 +02:00
elsid
3b5ce71d71
Remove redundant explicit dtor definition for AiPackage
2020-05-17 22:18:26 +02:00
elsid
ca93f8ee39
Compare initialized iterator
...
Comparsion of untilialized iterator is UB. Initialize with packages end.
2020-05-17 21:42:38 +02:00
elsid
e3cce0949e
Replace condition that may lead to UB by assert
...
If mPackages is empty it means package is a pointer to a deleted object
at line . We can assume it couldn't happen because execute is always called
next for this object at line 289.
2020-05-17 21:42:38 +02:00
elsid
d86669843e
Remove unseud pointTolerance argument
2020-05-16 18:44:12 +02:00
elsid
256c9917a4
Make AiWander::isPackageCompleted const
2020-05-16 18:44:12 +02:00
elsid
131f2557b1
Split functions to remove redundant clearPath argument
2020-05-16 18:44:12 +02:00
elsid
b8513e0318
Remove unused arguments
2020-05-16 18:44:12 +02:00
elsid
489a92de95
Check for hidden path only for actors wandering manually
...
Actors who doesn't wander over pathgrid.
2020-05-16 16:26:42 +02:00
elsid
e616188265
Do not allow wandering actor to have empty path
2020-05-16 16:11:30 +02:00
elsid
71350c6dff
Remove redundant variable
2020-05-16 16:11:30 +02:00
Andrei Kortunov
b5833f3c59
Use real time to update spell effects instead of game timestamps (bug #5165 )
2020-05-16 11:00:28 +04:00
Andrei Kortunov
3ebbe14a62
Avoid zero division
2020-05-16 10:56:51 +04:00
Capostrophic
8265ebc484
Fix spell school calculation
2020-05-15 22:24:48 +03:00
Bret Curtis
b7c33dbe0a
Merge pull request #2831 from Capostrophic/pursue
...
Allow guards to pursue an invisible player (bug #4774 )
2020-05-12 11:45:01 +02:00
Capostrophic
ece0db4f82
Cap movement animation playback speed
2020-05-11 15:11:32 +03:00
Capostrophic
a5d0d13e14
Allow guards to pursue an invisible player (bug #4774 )
2020-05-09 21:23:06 +03:00
David Cernat
053a5a6258
Add OpenMW commits up to 9 May 2020
...
# Conflicts:
# apps/openmw/mwmechanics/spellcasting.cpp
# apps/openmw/mwscript/aiextensions.cpp
2020-05-09 15:17:04 +03:00
Bret Curtis
b4aeb2711c
Merge pull request #2809 from Capostrophic/spellcasting
...
Refactor spellcasting header and implementation (task #5339 )
2020-05-05 17:17:13 +02:00
Capostrophic
844838c46a
Revert an invalid attempt to autoequip shields instead of torches
2020-04-30 00:12:52 +03:00
Capostrophic
69cd53ef8a
Fix reflect
2020-04-27 14:06:50 +03:00
Capostrophic
e7f91ff341
Simplify some inflict() logic
2020-04-27 12:50:09 +03:00
Capostrophic
4c1c30db33
Address akortunov's concerns regarding spell refactoring
...
Separate linked effect handling into linked effects header
Separate spell absorption handling into spell absorption header
Make armor disintegration loop a range-based for loop
2020-04-27 12:05:17 +03:00
Capostrophic
b1d857818d
Clean up CastSpell
2020-04-26 22:17:38 +03:00
Capostrophic
8d22e075e6
Separate functions that don't belong to CastSpell class
2020-04-26 22:17:38 +03:00
Capostrophic
db13984db0
Separate spell resistance
2020-04-26 21:13:59 +03:00
Capostrophic
5973285446
Move isSummoningEffect to summoning
2020-04-26 21:13:59 +03:00
Capostrophic
5535a7fb44
Move getSummonedCreature() to summoning
2020-04-26 18:58:33 +03:00
Capostrophic
a3cd3281fb
Use an array instead of a map in spellSchoolToSkill()
2020-04-26 16:21:05 +03:00
Capostrophic
4838cf7362
Clean up spellcasting
2020-04-26 00:42:40 +03:00
David Cernat
a20f8e77dc
Add OpenMW commits up to 25 Apr 2020
...
# Conflicts:
# .travis.yml
# apps/openmw/mwclass/container.cpp
# apps/openmw/mwclass/door.cpp
2020-04-25 09:52:58 +03:00
Bret Curtis
e791e65684
Merge pull request #2793 from Capostrophic/distancebias
...
Pick the correct aggressive actor in fight distance bias calculation
2020-04-23 00:09:36 +02:00
Capostrophic
40766d746c
Pick the correct aggressive actor in fight distance bias calculation
2020-04-22 16:06:42 +03:00
Bret Curtis
e1a5435531
Merge commit '8a8107e8'
2020-04-22 13:22:54 +02:00
Capostrophic
6731843691
Consider the first person movement sneaking if it's actually sneaking
2020-04-21 09:32:34 +03:00
Bret Curtis
8a8107e837
as it says; revert vismask and uncomplicate openmw
2020-04-20 20:57:38 +02:00
David Cernat
f8c557fbc0
[General] Read and use weapon quantity in RecordDynamic packets
2020-04-19 23:17:09 +03:00
David Cernat
25a632c650
Add OpenMW commits up to 13 Apr 2020
...
# Conflicts:
# CMakeLists.txt
# README.md
# apps/openmw/engine.cpp
# apps/openmw/mwclass/creaturelevlist.cpp
# apps/openmw/mwgui/quickkeysmenu.cpp
2020-04-13 19:53:42 +03:00
Andrei Kortunov
8d4dde7b56
Merge branch 'master' into autocalc
2020-04-13 13:53:29 +04:00
Capostrophic
f79e20379b
Make sure it's a crime to unlock owned doors
2020-04-12 01:56:03 +03:00
Capostrophic
ad333e88fe
Handle enchantment autocalc flag as a flag (bug #5363 )
2020-04-11 00:03:14 +03:00
Capostrophic
1928bebe98
Don't use up light duration if the held light is hidden (bug #5352 )
2020-04-04 20:51:41 +03:00
David Cernat
7bc3298ed4
Add OpenMW commits up to 1 Apr 2020
...
# Conflicts:
# .travis.yml
# CI/before_install.linux.sh
# apps/openmw/mwphysics/physicssystem.cpp
2020-04-01 19:24:11 +03:00
Capostrophic
99e89f23a6
Fix calculateNpcStatModifiers call for non-NPCs
2020-03-28 19:15:13 +03:00
Capostrophic
04ebe5c4c9
Reset skills of dead actors (bug #5328 )
2020-03-26 15:22:31 +03:00
David Cernat
907c5fc6de
Merge branch '0.7.1-summons-ordering' into 0.7.1
2020-03-22 17:29:01 +02:00
fredzio
e1b5dd97b8
Add a filter in the alchemy window.
...
A button allow to switch between ingredient name and magic effect.
Switching reset the filter.
The default filter can be set in the layout file.
The player can show only ingredients whose either name or effect
match the filter
Only effect that are known to the player (via alchemy skill) are
taken into account
2020-03-20 06:35:57 +01:00
uramer
3e7230e89d
[Client] Assign summoned creatures' actorId correctly, skipping those already assigned
2020-03-19 22:28:00 +01:00
Andrei Kortunov
dea2018d9f
Do not use dynamic casts when using ObjectState
2020-03-17 15:18:40 +04:00
David Cernat
43e7df6df8
Add OpenMW commits up to 11 Mar 2020
2020-03-11 22:17:17 +02:00
Roman Siromakha
b1ed7a433e
Merge pull request #2718 from akortunov/storage
...
Keep an AiWanderStorage when cloning an actor
2020-03-11 18:54:22 +01:00
Alexei Dobrohotov
7e6a533a29
Merge pull request #2695 from elsid/aiwander_check_destination
...
Add more destination checks for AiWander without pathgrid
2020-03-11 20:48:22 +03:00
Andrei Kortunov
9f27a0d095
Keep an AiWanderStorage when cloning an actor (bug #5267 )
2020-03-10 12:22:21 +04:00
Andrei Kortunov
ae65b0228a
Do not write custom data for disposed actors
2020-03-07 13:01:14 +04:00
David Cernat
27d35d73a2
[General] Implement OnObjectSound packet
...
Many interactions between players and objects now have their sounds sent to other players.
2020-02-29 18:15:41 +02:00
David Cernat
9d3afc019a
[Client] Add logging for items added to & removed from player by server
...
Additionally, adjust comment related to potion creation to mention sending of stored item removals.
2020-02-25 09:53:42 +02:00
David Cernat
dae805dbc1
[Client] Avoid PlayerInventory packet spam when creating many potions
2020-02-25 07:45:06 +02:00
Capostrophic
1da4b31047
Switch torches to shields for hostile NPCs (bug #5300 )
2020-02-24 02:20:08 +03:00
David Cernat
e78503d5f3
[General] Include potion quantity in RecordDynamic packets
...
Don't spam the server with one RecordDynamic packet per potion created when brewing multiple potions at once. Instead, send a single RecordDynamic packet with the potion quantity included in it.
Add serverside script functions for getting the potion quantity.
2020-02-22 21:21:30 +02:00
David Cernat
85fb1d1a0b
Add OpenMW commits up to 19 Feb 2020
...
# Conflicts:
# apps/openmw/mwworld/scene.cpp
2020-02-20 01:51:47 +02:00
Bret Curtis
a0902bb98e
Merge pull request #2700 from akortunov/masks
...
Move VisMask to components
2020-02-17 11:58:53 +01:00
Andrei Kortunov
84979fa8b7
Move VisMask to components
2020-02-16 16:03:35 +04:00
Roman Siromakha
3ae1a208df
Merge pull request #2684 from Capostrophic/damagefatigue
...
Make uncapped Damage Fatigue optional (bug #5264 )
2020-02-13 20:37:50 +01:00
Capostrophic
013953ec7f
Support Wander movement deceleration
2020-02-11 13:50:53 +03:00
elsid
9404b1dd72
Stop wandering when destination is hidden or occupied by other actor
2020-02-10 22:29:54 +01:00
elsid
4a0c056489
Do not wander to occupied area by other actor
2020-02-10 22:29:54 +01:00
elsid
85414e2353
Check for line of sight for wander destination
2020-02-10 22:29:54 +01:00
elsid
0c92a567af
Use distance to position since last normal state in obstacle checker
2020-02-10 22:29:54 +01:00
Capostrophic
122dffe4c1
Make uncapped Damage Fatigue optional (bug #5264 )
...
Cap Absorb Fatigue
2020-02-09 14:41:38 +03:00
David Cernat
f0f76516d8
Add OpenMW commits up to 4 Feb 2020
...
# Conflicts:
# .travis.yml
# CI/before_script.linux.sh
2020-02-05 02:03:31 +02:00
elsid
349040ffb2
Use status codes to handle navigator errors instead of exceptions
...
For find path use case.
2020-02-04 22:33:56 +01:00
Andrei Kortunov
1db51a9e08
Re-work wandering outside of initial cell (bug #5261 , bug #5262 )
2020-02-02 11:02:19 +04:00
Alexei Dobrohotov
2652b10b9c
Merge pull request #2681 from akortunov/hello
...
Do not interrupt greeting update when Hello = 0 or actor starts to swim
2020-01-30 00:48:13 +03:00
Andrei Kortunov
1522883fdd
Do not interrupt greeting update when Hello = 0 or actor starts to swim (bug #5248 )
2020-01-29 16:31:09 +04:00
elsid
f7caeefddb
Fallback to straight path when navmesh and pathgrind are not available
2020-01-29 11:14:07 +01:00
elsid
8e0b638145
Fix start position for AiWander random point selection
2020-01-28 20:29:52 +01:00
David Cernat
59a38164ea
[Client] Add generic objects to ObjectList using addObjectGeneric()
2020-01-23 09:03:40 +02:00
David Cernat
989188c171
[Client] Remove ObjectList's confusing addObjectDelete() function
2020-01-22 14:35:51 +02:00
elsid
1e106013a0
Use navmesh to find wander destination outside pathgrid for ground based actors
...
Use dtNavMeshQuery::findRandomPointAroundCircle from recastnavigation
2020-01-21 00:01:06 +01:00
elsid
e323e6e7e6
Consider moved distance in direction to destination for obstacle check
...
Assume actor is stuck when it's not able to move in the destination
direction with maximum speed. Approach to check moved distance from the
previous point doesn't work good for slow and big actors. When they face
obstacle they're trying to move along with oscillation so check is
passing but they don't get any closer to the destination.
2020-01-20 23:46:58 +01:00
David Cernat
60b6f92fa3
Add OpenMW commits up to 13 Jan 2020
...
# Conflicts:
# apps/openmw/mwmechanics/actors.cpp
2020-01-15 07:49:26 +02:00
Andrei Kortunov
a384104f73
Rework greeting timeouts (bug #5249 )
2020-01-11 21:47:08 +04:00
Andrei Kortunov
2bed25a5e8
Merge pull request #2659 from Capostrophic/aitravel
...
Handle out-of-range actors' travel packages (bug #5212 )
2020-01-10 13:32:51 +04:00
capostrophic
fc0f813dcb
Add and use 'always active' AI package flag
...
Update documentation
2020-01-10 12:07:57 +03:00
capostrophic
af2ea477d5
Don't use loops to detect absorb effects
2020-01-09 22:17:01 +03:00
capostrophic
42cc27194b
Fix reported spellcasting discrepancies
...
Make ExplodeSpell behavior closer to Cast behavior (#5242 )
Nullify on-self absorb spells in a different way (#5241 )
Allow casting permanent spells through Cast/ExplodeSpell
2020-01-09 22:17:01 +03:00
capostrophic
2d87d287ba
Handle out-of-range actors' travel packages ( #5212 )
2020-01-09 14:17:54 +03:00
capostrophic
29c6a8975a
Don't combine sneak idle with scripted/wander idles (bug #4284 )
2020-01-05 15:09:02 +03:00
David Cernat
a58f09fd6c
Add OpenMW commits up to 2 Jan 2020
...
# Conflicts:
# apps/openmw/mwmechanics/enchanting.cpp
# apps/openmw/mwworld/scene.cpp
2020-01-02 22:09:54 +02:00
Andrei Kortunov
71e1d576cd
Allow to enchant multiple projectiles at once (feature #3517 )
2019-12-31 21:31:49 +04:00
David Cernat
ca9cd90a4d
Add OpenMW commits up to 20 Dec 2019
...
# Conflicts:
# apps/openmw/mwworld/scene.cpp
2019-12-20 15:43:50 +02:00
Andrei Kortunov
30a18c2a66
Merge pull request #2625 from Capostrophic/sneaking
...
[Regression] Attempt to fix idle state reset again
2019-12-20 14:32:22 +04:00