1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 23:49:55 +00:00
Commit graph

3050 commits

Author SHA1 Message Date
Evil Eye
144a7f330f Fix a regression that meant missing spells would prevent a save from being loaded 2020-08-04 18:28:10 +02:00
unknown
073a7f2b2d Comments to explain the arcane workings of Morrowind 2020-07-30 21:39:04 +02:00
unknown
e27858cfab these were supposed to be included 2020-07-28 18:24:09 +02:00
Evil Eye
6ad20ec9c7 Mutate base records when adding/removing spells 2020-07-28 08:33:28 +02:00
Bret Curtis
ae1af0e103
Merge pull request #2972 from Assumeru/non-unique-additem
Mutate base record when calling add/remove item on non-unique actors
2020-07-27 23:33:10 +02:00
Evil Eye
040a92c373 implement additem/removeitem for non-unique actors 2020-07-26 11:07:18 +02:00
Andrei Kortunov
e6036e13b9 Use more C++11 loops in game mechanics code 2020-07-25 15:54:49 +04:00
elsid
b7c1c52439
Adjust actor rotation when flee by axis x
Otherwise Cliff Racers can go underwater.
2020-07-13 20:08:37 +02:00
Andrei Kortunov
da791590ac Update HUD icons during mechanics update again to avoid crashes 2020-07-11 20:40:00 +04:00
psi29a
c3a44212c7 Merge branch 'player_resurrection_spell_fix' into 'master'
Don't clear spells for a dead player, preventing resurrection problems

See merge request OpenMW/openmw!207
2020-07-10 12:00:24 +00:00
psi29a
46db69a349 Merge branch 'swimming' into 'master'
Swimming-related fixes

See merge request OpenMW/openmw!247

(cherry picked from commit 8be328ef80f29e9692e29d24beefa8ced16537a7)

738c71fd Extend the "turn to movement direction" mode for swimming up and down.
10d3e82b New setting "swim upward coef"
2020-07-09 20:05:59 +00:00
Andrei Kortunov
27f1a3376c Add a separate stats watcher for GUI 2020-07-01 15:55:44 +04:00
Petr Mikheev
a455b99ed6 Fix incorrect speed for creatures, that is caused by https://gitlab.com/OpenMW/openmw/-/merge_requests/245/diffs?commit_id=eebbacd8b4ab22b3e824538df2d7faec0038c1a1 2020-06-27 23:56:48 +02:00
psi29a
e83fb8c3fd Merge branch 'fix_turn_to_movement' into 'master'
Bugfix for "turn to movement direction"

Fix for #5457.

Users complain that movement is not smooth enough when the character turns from "straight right" to "straight right and a bit backward" movement.

This MR fixes it.

The problem was mostly caused by the logic that at first changes animation speed to match movement speed, and then adjusts the movement speed to match the animation. IMHO it is a doubtful logic because then the real movement speed may be not consistent with the result of getSpeed.

Also I've removed the setting "turn to movement direction speed coef" because:
1) It was added as a workaround for this "non smooth movement" problem. After the fix it is not needed.
2) Users mistakenly think that it is somehow related to movement speed for diagonal movement.

See merge request OpenMW/openmw!245
2020-06-26 20:04:02 +00:00
Petr Mikheev
63f828fea8 Bugfix for "turn to movement direction" 2020-06-26 20:04:02 +00:00
Bret Curtis
c4453322e5
Merge pull request #2931 from Capostrophic/intimidate
Increase disposition on marginal Intimidate wins (#5485)
2020-06-26 13:47:35 +02:00
Andrei Kortunov
d0fe15b095 Use meaningful names instead of mSkill1 and mSkill2 2020-06-26 11:47:59 +04:00
Andrei Kortunov
fde0f20a6f Fix faction requirement calculations (bug #5499) 2020-06-26 11:14:38 +04:00
Capostrophic
b592fa826c Increase disposition on marginal Intimidate wins (#5485) 2020-06-25 20:28:55 +03:00
Capostrophic
c7aea20657 Don't offer a price of 1 gold for zero value items (#5484) 2020-06-25 14:56:20 +03:00
Petr Mikheev
b4c699348f Improved strafe movement 2020-06-22 15:22:34 +02:00
Bret Curtis
c944acf26b
Merge pull request #2913 from akortunov/warnfix
Get rid of ECLD and dependencies
2020-06-17 15:00:57 +02:00
Andrei Kortunov
d1a3cc98ff Get rid of ECLD and dependencies 2020-06-17 13:09:16 +04:00
Bret Curtis
1db58575c8
Fixed missed AiPackageTypeId::Wander 'fix' 2020-06-17 09:58:18 +02:00
Alexei Dobrohotov
2d23dad2bc
Merge branch 'master' into ai_package_type 2020-06-17 01:47:23 +03:00
psi29a
0dc7715c35 Merge branch 'object_paging_retry' into 'master'
Object Paging

See merge request OpenMW/openmw!209
2020-06-16 08:21:54 +00:00
elsid
b095ca6c86
Use actor speed to define area cost for pathfinding 2020-06-13 02:24:52 +02:00
bzzt lost a hitlab login
c1ebd9474b stop navmesh updates when ai off
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
elsid
d863267d5c
Do not fallback to direct path without pathgrid
Assume this might happen only due buildPath call when navmesh can't
provide path.
2020-06-12 21:46:10 +02:00
elsid
c4cd3b2c4f
Add pathgrid to navmesh as off mesh connection 2020-06-12 21:04:02 +02:00
elsid
095a45c714
Remove unused PathgridGraph::mIsExterior 2020-06-11 21:43:51 +02:00
elsid
82893c30f4
Store package type id as enum except ESM 2020-06-11 21:02:27 +02:00
Bret Curtis
6bc04507ef
Merge pull request #2715 from akortunov/cleanup
Remove custom data for disposed actors
2020-06-08 12:29:28 +02:00
Andrei Kortunov
3dd4023e8d Update active spells during rest 2020-06-08 11:29:38 +04:00
Alexei Dobrohotov
d5d385fe9e
Merge pull request #2891 from elsid/ai_packages_options
Replace AiPackage virtual methods by options
2020-06-08 02:06:38 +03:00
Fanael Linithien
48758116d6 Make sure the skill level up message box displays the value correctly
Fixes regression introduced in 204d2acf25.
2020-06-06 14:24:33 +02:00
elsid
5b34ef224b
Replace AiPackage virtual methods by options 2020-06-06 12:00:17 +02:00
Bret Curtis
3b1c717ab9
Merge pull request #2888 from elsid/ai_packages_const
Mark not changing AiPackages fields as const
2020-06-05 23:11:10 +02:00
elsid
da8ea9d8c7
Mark not changing AiPackages fields as const 2020-06-04 23:12:23 +02:00
Andrei Kortunov
5468fcb29f Store attributes and skills values as floats (bug #4021) 2020-06-03 17:34:15 +04:00
Bret Curtis
2eb9d4ad4e
Merge pull request #2878 from Assumeru/mutate-ai
Mutate base records when editing AI settings (#2798)
2020-06-03 15:09:40 +02:00
Bret Curtis
dd7f5fcde7
Merge pull request #2884 from Capostrophic/deathmagic
Update spell effects during death animation (#5403)
2020-06-03 15:07:08 +02:00
Andrei Kortunov
3dce225f28 Implement vanilla-style corprus handling (bug #3714, bug #4623) 2020-06-03 12:58:17 +04:00
Evil Eye
4d7947d27c Mutate base records when editing AI settings (#2798) 2020-06-02 21:59:37 +02:00
elsid
b67e18329e
Store AI packages as unique_ptr 2020-06-01 17:07:08 +02:00
elsid
ce7c47ee12
Return cloned AiPackage as unique_ptr 2020-06-01 17:07:08 +02:00
Bret Curtis
18bb6dd223
Merge pull request #2859 from elsid/aipackage_single_clone
Single clone function definition for all AI packages
2020-06-01 01:21:57 +02:00
Capostrophic
d72152183f Update spell effects during death animation (#5403) 2020-05-30 23:24:06 +03:00
Capostrophic
b0b4550f05 Pass Actor by reference, simplify GetTarget for greetings 2020-05-30 00:51:58 +03:00
Capostrophic
efd5f13b2b Make greeting-related actor data temporary (bug #5397) 2020-05-30 00:51:58 +03:00
Bret Curtis
9d0855baa5
Merge pull request #2866 from elsid/extend_osg_stats
Extend OSG stats
2020-05-29 23:23:38 +02:00
Bret Curtis
6f2fdb990b
Merge pull request #2876 from Capostrophic/blending
Reenable weapon animation lower body anim blending in first person view (#5441)
2020-05-29 11:05:33 +02:00
Capostrophic
95cd473352 Reenable weapon animation lower body animation blending in FPV (#5441)
Disabling it is a non-vanilla behavior that breaks things that aren't broken in vanilla
2020-05-26 17:01:45 +03:00
Capostrophic
51c0806a31 Use AppliedOnce flag in more effect duration calculations (#5425) 2020-05-24 18:37:21 +03:00
elsid
69df6098e5
Report frame number, number of actors and objects to stats 2020-05-22 17:39:18 +02:00
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
David Cernat
411b6dcd8e Don't clear spells for a dead player, preventing resurrection problems 2020-05-18 14:46:20 +03: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
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
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
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
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
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
Andrei Kortunov
dea2018d9f Do not use dynamic casts when using ObjectState 2020-03-17 15:18:40 +04: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
Capostrophic
1da4b31047 Switch torches to shields for hostile NPCs (bug #5300) 2020-02-24 02:20:08 +03: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
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
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
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
Andrei Kortunov
71e1d576cd Allow to enchant multiple projectiles at once (feature #3517) 2019-12-31 21:31:49 +04: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
Andrei Kortunov
97ee4bc349 Improve equipment logic (bug #5223) 2019-12-14 22:30:27 +04:00
Capostrophic
483b37bb3f Disallow resting if the fall height hasn't been reset (bug #4802) 2019-12-12 15:26:02 +03:00
Andrei Kortunov
3d9c42e8ee Cap reputation values (bug #5226) 2019-12-11 08:47:46 +04:00
Capostrophic
86c8fe386b Fix idle state reset 2019-12-03 20:50:57 +03:00
Andrei Kortunov
d0643d266a Do not use fallthrough in switches 2019-11-19 16:10:18 +04:00
Andrei Kortunov
4118b20608 Allow ActionOpen and ActionTalk only for player (bug #5210 2019-11-18 12:41:11 +04:00
Andrei Kortunov
6861d9d5e5
Merge pull request #2510 from elsid/ai_open_door
Open door when it is on the way to a next path point (bug #5073)
2019-11-17 21:21:22 +04:00
Andrei Kortunov
6554130f6f
Merge pull request #2594 from Capostrophic/summonsummon
Minor summoned creature cleanup fixes
2019-11-17 10:47:07 +04:00
Andrei Kortunov
8dbbe42f21 Add missing isNpc() check (bug #5206) 2019-11-17 09:17:03 +04:00
Andrei Kortunov
af41e9acc1 Initialize variables to avoid undefined values 2019-11-13 14:47:29 +04:00
Capostrophic
1097c2cfc4 Minor summoned creature cleanup fixes 2019-11-12 17:50:06 +03:00
Capostrophic
9c78e8cc56 Make sure movement not controlled by animation has valid velocity
Fixes erroneously always normalized movement speed in first person
2019-11-12 17:33:44 +03:00
Andrei Kortunov
6eb8e0cf4d Display magic effects according to research page 2019-11-07 11:05:18 +04:00