Andrei Kortunov
1e8b7f0f83
Fix -Wstring-plus-int warnings
2019-01-20 15:46:19 +04:00
Capostrophic
05d5d7d57b
Account for stances when the player is in air (bug #4797 )
...
Make GetPCRunning and GetPCSneaking return 1 if the player is in air while the stance is toggled
Make sneaking skill usage possible if sneaking stance is toggled while in air
2019-01-15 00:25:26 +03:00
David Cernat
f481c85e07
[Client] Use ADD before REMOVE for PlayerInventory in repair/recharge
...
Previously, when recharging or repairing an item, the client sent a PlayerInventory packet to the server with the old version of the item that was supposed to be removed and then it sent a PlayerInventory packet with the new version of the item that was supposed to be added.
Unfortunately, the current CoreScripts make it so custom items using generated IDs have their records deleted when they are completely removed from the world, however briefly, even if they are added back immediately afterwards. In practice, this meant that – before this commit – recharging or repairing a custom item led to its removal from the player inventory stored on the server, followed by the deletion of its record, followed by its readdition to the inventory (but with the record staying deleted). Logging out and logging back in immediately prevented the player from receiving the item anymore because of its now non-existent record.
2019-01-11 13:08:26 +02:00
Bret Curtis
9c795195d0
Merge pull request #2109 from Capostrophic/loops
...
Simplify some world loops
2019-01-10 11:44:41 +01:00
Andrei Kortunov
0937f02598
Get rid of unnecessary string streams
2019-01-07 21:08:16 +04:00
Capostrophic
624db99bf2
Remove some redundant code
2019-01-05 01:25:52 +03:00
Capostrophic
8a266803eb
Simplify some world loops
2018-12-30 15:36:42 +03:00
David Cernat
71679934a1
[Client] Send PlayerInventory packets when repairing items
2018-12-30 09:39:46 +02:00
David Cernat
5d9893ee92
[Client] Set actor killer correctly for spells that do damage over time
...
Additionally, clean up comments related to other code that sets actor killers.
2018-12-30 07:40:11 +02:00
David Cernat
76ac905efc
[Client] Send PlayerInventory packets when trapping souls in soulgems
2018-12-26 12:25:00 +02:00
Bret Curtis
6d7aacab5e
Merge pull request #2053 from akortunov/animatedContainers
...
Native animated containers support
2018-12-17 10:00:07 +01:00
Andrei Kortunov
a53333c3d5
Native animated containers support (feature #4730 )
2018-12-13 23:11:16 +04:00
Capostrophic
6083e5ed4b
Don't interrupt sneak and swim idles in first person view (bug #4750 )
2018-12-10 00:05:06 +03:00
Capostrophic
7b33838b33
Don't consider non-solid actors truly levitating (bug #4746 )
2018-12-05 23:37:32 +03:00
Andrei Kortunov
671f2811d5
Fix regressions in the animation system (bug #4729 )
2018-11-23 20:22:37 +04:00
Andrei Kortunov
4ee15ddcb9
Fix many Coverity Scan warnings
2018-11-14 11:21:49 +04:00
Capostrophic
6d48d9329e
Avoid making string copies instead of references
2018-11-08 17:03:29 +03:00
Capostrophic
4cb4f82431
Don't use bitwise AND
2018-11-07 19:44:17 +03:00
Capostrophic
39f8637e95
Simplify some actor loops and avoid some redundant calculations
2018-11-06 17:56:53 +03:00
Andrei Kortunov
829faf7b2c
Improve toggleactorspaths console command
2018-11-03 10:42:14 +04:00
Capostrophic
1de9674c81
AI package cleanup
2018-11-02 14:58:30 +03:00
Bret Curtis
5f5773f7df
Merge pull request #2009 from elsid/pathfinder_update_tolerance
...
Use default tolerance to drop last point from path
2018-11-02 00:21:08 +01:00
elsid
c52db75545
Use default tolerance to drop last point from path
...
Fixes AiEscort. Before actor tried to reach target with 0 tolerance.
Back to logic like it was before 4fe764c3a5
and bbd82a743
commits.
2018-11-02 01:12:41 +03:00
Capostrophic
a4eff1c871
Fix isWithinMaxRange function
2018-11-02 00:22:37 +03:00
Andrei Kortunov
f1eb702851
Mark virtual methods in the mechanicsmanagerimp.hpp as overrides
2018-10-31 10:09:32 +04:00
Bret Curtis
d6c674660a
Merge pull request #1633 from elsid/pathfinder_detour
...
Use recastnavigation for pathfinding (#2229 )
2018-10-30 20:44:13 +01:00
Bret Curtis
e65f254f7f
Merge pull request #1999 from akortunov/resurrect
...
[Regression] Make sure we reset current weapon animation when resurrect actor
2018-10-29 20:43:54 +01:00
Andrei Kortunov
f98fc8d7b4
Make sure we reset current weapon animation when resurrect actor (addition to bug #2626 )
2018-10-29 22:47:04 +04:00
Capostrophic
77b0ff7a75
Use real thrown weapon damage in tooltips and weapon rating (feature #4697 )
2018-10-28 19:46:46 +03:00
elsid
49d81241db
Merge branch 'master' into pathfinder_detour
2018-10-28 17:08:09 +03:00
Bret Curtis
e7892361f6
Merge pull request #1994 from akortunov/actor_culling
...
Minor tweaks for actors processing range setting
2018-10-28 14:44:12 +01:00
Andrei Kortunov
06d226a1b7
Minor tweaks for actors processing range setting
2018-10-28 15:08:24 +04:00
Marc Zinnschlag
9dd0d641bc
Merged pull request #1931
2018-10-28 11:02:33 +01:00
Capostrophic
abdf40e0d5
Avoid making expensive visitEffectSources calls if no spell absorption effect is active
2018-10-27 16:38:04 +03:00
Andrei Kortunov
bf9e8c4556
Make spell absorption multiplicative (bug #4684 )
2018-10-26 12:36:58 +04:00
Andrei Kortunov
e7de6b974a
Optimize actors processing
...
1. Do not update physics and animations for actors outside processing range (bug #4647 )
2. Do not render such actors
3. Add transparency to actors near processing border, so they will not pop up suddenly
2018-10-25 22:52:59 +04:00
Capostrophic
54bd7b2dcf
Implement getItemNormalizedHealth() method and use it
2018-10-25 15:45:31 +03:00
Capostrophic
67de61e1fb
Avoid item condition and charge zero divisions
2018-10-24 19:06:55 +03:00
Andrei Kortunov
d7d9050d4a
Force actor to the 'weapon equipped' state if the weapon disappeared in the middle of attack (bug #4646 )
2018-10-18 11:42:03 +04:00
Bret Curtis
e406c5ff81
Merge pull request #1946 from akortunov/backupfix
...
Combat AI: check for obstacle before back up
2018-10-16 21:47:21 +02:00
David Cernat
bfd7c83c4d
[Client] Fix backwards logic when setting type for AI attacks
2018-10-16 21:18:41 +03:00
elsid
03d4ce5e49
Log find path exception with level verbose, add more info to message
2018-10-15 23:25:42 +03:00
Capostrophic
6ef7be3fd3
Re-enable using soundgen land for creatures
2018-10-14 20:18:17 +03:00
Andrei Kortunov
ca07e3a364
Check for obstacle before back up (bug #4656 )
2018-10-14 12:22:43 +04:00
elsid
e57504ae7c
Lower log level
2018-10-13 22:22:15 +03:00
elsid
7c5bedc35a
Reset shorcutting if actor can't move by z-axis on reaction time
...
If actor was shortcutting because it was swimming, then when it started
walking it still be shortcutting, but there will be no new path, because
shortcut path builds only for actor able moving by z-axis and pathfinder
path only for not shortcutting actor.
2018-10-13 22:16:34 +03:00
elsid
92b34e8bb4
Check whether can actor move along z-axis in separate function
2018-10-13 22:16:34 +03:00
elsid
bbd82a743a
Use different tolerance for path point and destination
2018-10-13 22:16:34 +03:00
elsid
ab090108cb
Assign world to local variable once per function
2018-10-13 22:16:34 +03:00
elsid
27a74725f1
Use osg::Vec3f
2018-10-13 22:16:34 +03:00
elsid
346e9e3141
Add off mesh connections for doors without teleport
2018-10-13 22:16:33 +03:00
elsid
661da42bd2
Build path by navigator
2018-10-13 22:16:33 +03:00
elsid
d02beae5a8
Find path for actors according to their abilities to swim and walk
2018-10-13 22:16:33 +03:00
elsid
dc09674362
Add command and settings option to enable actors paths render
2018-10-13 22:16:32 +03:00
elsid
fafba8ea0c
Use recastnavigation to find path
2018-10-13 22:16:25 +03:00
elsid
4fe764c3a5
Update and check for complete Pathfinder path by different methods
2018-10-13 22:16:24 +03:00
elsid
b6dd2119a6
Make Pathfinder constructor inline
2018-10-13 22:16:24 +03:00
elsid
92f52287bf
Make PathFinder::ClearPath inline
2018-10-13 22:16:24 +03:00
elsid
3655f19373
Set PathFinder::mCell to nullptr when clear path
2018-10-13 22:16:23 +03:00
elsid
85bbf9d034
Clear path without check for empty
2018-10-13 22:16:23 +03:00
elsid
ca3d0594b3
Do not store pointer to Pathgrid in PathFinder
2018-10-13 22:16:23 +03:00
elsid
3565d92e11
Make PathFinder::getPathCell inline
2018-10-13 22:16:23 +03:00
elsid
2ad3543088
Fix constant style
2018-10-13 22:16:23 +03:00
elsid
f9c651bdf3
Add const
2018-10-13 22:16:23 +03:00
elsid
2c464bd682
Evade obstacles after set rotation
2018-10-13 22:16:22 +03:00
elsid
eb10add0c4
Remove unused parameters
2018-10-13 22:16:22 +03:00
elsid
66e5a4d591
Remove useless variable
2018-10-13 22:16:22 +03:00
elsid
1a95b7a154
Remove duplicate zTurn call
2018-10-13 22:16:22 +03:00
elsid
d0bc1b75e8
Remove unused parameters
2018-10-13 22:16:22 +03:00
elsid
63b3a70ca8
Remove useless else
2018-10-13 22:16:22 +03:00
elsid
c9f3064cbd
Update ObstacleCheck once per frame
2018-10-13 22:16:22 +03:00
elsid
ad027d13fa
Remove unused
2018-10-13 22:16:21 +03:00
elsid
6d89241178
Check is path completed by osg::Vec3f position
2018-10-13 22:16:21 +03:00
elsid
2c6daa74a9
Simplify PathFinder::checkPathCompleted
2018-10-13 22:16:21 +03:00
elsid
6411c1955d
Fix indent
2018-10-13 22:16:21 +03:00
elsid
d3667945c5
Remove unused functions
2018-10-13 22:16:21 +03:00
elsid
31340a212a
Fix functions name style
2018-10-13 22:16:21 +03:00
elsid
2f424f6be2
Store aStarSearch result to deque
2018-10-13 22:16:20 +03:00
elsid
9b3756f8bc
Store path points in deque
2018-10-13 22:16:20 +03:00
elsid
925d909fea
Use rbegin
2018-10-13 22:16:20 +03:00
elsid
fbaa525c6f
Fix warning
2018-10-13 22:16:20 +03:00
elsid
4d868bec92
Use osg::Vec3f to store path nodes in Pathfinder
2018-10-13 22:16:20 +03:00
elsid
33dfe284bd
Mark local variables const which one does not change
2018-10-13 22:16:20 +03:00
elsid
0cfdf0c7b6
Remove unused virtual
2018-10-13 22:16:20 +03:00
Marc Zinnschlag
2d87d1d9d2
Merged pull request #1959
2018-10-10 15:05:29 +02:00
Marc Zinnschlag
38a3632be7
Merged pull request #1960
2018-10-10 14:56:51 +02:00
Andrei Kortunov
5617bb3f0c
Improve pitch factor handling for crossbow animations (bug #4672 )
2018-10-09 11:35:28 +04:00
Andrei Kortunov
e06f0b797a
Replace all NULLs to nullptr
2018-10-09 10:21:12 +04:00
Capostrophic
09aecb955c
getSkill usage cleanup (bug #4671 )
2018-10-08 17:06:30 +03:00
Bret Curtis
585313a71f
Merge pull request #1953 from Capostrophic/animation
...
Fix first person swimming animations
2018-10-06 14:24:48 +02:00
Capostrophic
34e45efac3
Fix first person swimming animations
2018-10-05 17:29:49 +03:00
Marc Zinnschlag
b410d87aae
Merged pull request #1952
2018-10-03 13:19:28 +02:00
Andrei Kortunov
07ccc5abdb
Remove non-looping effects after rest
2018-10-01 21:57:13 +04:00
Marc Zinnschlag
33044add97
Merged pull request #1938
2018-09-28 11:31:45 +02:00
Marc Zinnschlag
5fa9b32e76
Merged pull request #1937
2018-09-27 11:06:21 +02:00
Capostrophic
ba2fd8b795
Rename reflected absorb spells setting and add it to Advanced tab
2018-09-26 21:21:03 +03:00
Andrei Kortunov
8af021d729
Restore dynamic stats for actors in inactive cells (bug #1875 )
2018-09-26 07:46:28 +04:00
Capostrophic
d2cad229f8
Ugly hack: don't reset player idle and movement animations in first person view
2018-09-25 17:09:54 +03:00
Capostrophic
77fb4d6dd2
Make sure the idle animations are reset while jumping
2018-09-24 19:30:02 +03:00
Capostrophic
56ef11b023
Reset sneak and swim idle animations when moving
2018-09-24 19:30:02 +03:00
Capostrophic
713330351b
Experimental animation regression fixes
...
Don't unnecessarily start movement and jump animations from loop start
Don't play movement animation until jumping animation finishes
2018-09-24 19:30:02 +03:00
Marc Zinnschlag
6ce6108eb4
Merged pull request #1932
2018-09-24 11:57:08 +02:00
David Cernat
995d20348f
[General] Always use correct ranged weapon & ammo for ranged attack sync
...
Previously, the player's currently selected weapon was being used in ranged attacks as in the original melee-oriented attack sync, which meant that shooting one type of projectile and then equipping another while the old projectile was still in the air turned the old projectile into the new projectile upon impact.
Additionally, avoid running most of the code in MechanicsHelper::assignAttackTarget() for non-hitting melee and ranged attacks.
2018-09-23 02:30:31 +03:00
Andrei Kortunov
cd60d4fdf0
Store character controller in the variable make code less bulk
2018-09-22 21:13:00 +04:00
Andrei Kortunov
2ac2d01432
Optimize drowning state update
2018-09-22 21:12:56 +04:00
Andrei Kortunov
90d35aaa8f
Handle current health level during levelup (bug #4649 )
2018-09-22 07:48:47 +04:00
Andrei Kortunov
1634284739
Cache player's position outside of loops
2018-09-21 22:39:47 +04:00
Andrei Kortunov
b9346798c6
Optimize combat music update
2018-09-21 22:34:18 +04:00
Andrei Kortunov
fb484c6fde
Optimize AI loop a bit
2018-09-21 19:02:28 +04:00
Marc Zinnschlag
7be9f2ca45
Merged pull request #1891
2018-09-21 11:38:19 +02:00
Andrei Kortunov
bdd9eba2b8
Use C++ limits instead of C ones
2018-09-20 16:02:26 +04:00
Andrei Kortunov
276b7830a9
Mass potion creation (feature #4642 )
2018-09-20 15:45:14 +04:00
Marc Zinnschlag
3761aaadfd
Merged pull request #1928
2018-09-20 13:31:56 +02:00
Marc Zinnschlag
29bc5cbecf
Merged pull request #1925
2018-09-20 13:14:55 +02:00
Andrei Kortunov
6f4f6a155f
Combat AI: take ranged weapon speed in account
2018-09-19 12:23:24 +04:00
David Cernat
b5f46ada73
[General] Synchronize projectile speed for ranged attacks
...
This is done by including the final attackStrength used for ranged attacks in packets and then applying it in WeaponAnimation::releaseArrow() on other clients.
2018-09-18 01:13:48 +03:00
Andrei Kortunov
70ed8fd1a9
Use constants instead of widely used magic numbers (task #4645 )
2018-09-17 19:22:50 +04:00
Bret Curtis
07be9ae8ac
Merge pull request #1926 from akortunov/warnfix
...
Fix MSVC warning about possibly uninitialized movestate variable
2018-09-17 17:10:25 +02:00
Andrei Kortunov
9c8fc0557a
Fix MSVC warning about possibly uninitialized movestate variable
2018-09-17 14:45:16 +04:00
David Cernat
7281f9fc42
[Client] Prevent unilateral paralysis of dedicated players & actors
...
This is a temporary workaround until active effect synchronization is implemented.
2018-09-16 15:34:57 +03:00
Andrei Kortunov
ae1c054635
Make GetPCJumping return true only when jumping (bug #4641 )
2018-09-16 11:58:01 +04:00
David Cernat
9d2dc96a2e
[Client] Use RANGED type for ranged attacks that haven't hit a target
2018-09-14 13:23:43 +03:00
Marc Zinnschlag
ea053d9f47
Merged pull request #1881
2018-09-14 11:43:11 +02:00
Marc Zinnschlag
6100e34051
Merged pull request #1912
2018-09-12 12:04:49 +02:00
Andrei Kortunov
0136f0552b
Do not update mIdleState directly
2018-09-11 22:24:44 +04:00
Andrei Kortunov
929d78d6a3
Randomize attacks for non-bipedal creatures with Weapon flag
2018-09-11 22:24:44 +04:00
Andrei Kortunov
0440c11ccd
Fix swim crossbow animations
2018-09-11 22:24:44 +04:00
David Cernat
fcd31bf4a6
[General] Fix problems with the synchronization of ranged attacks
...
Projectile hits now send Attack packets with RANGED attacks, and their success or failure is now synchronized.
Strike enchantments no longer require a valid victim to be synchronized.
Additional debug messages have been added for attacks.
2018-09-11 11:56:45 +03:00
Andrei Kortunov
e5a81b1f99
Fix some issues, found by Coverity Scan
2018-09-10 16:35:27 +04:00
David Cernat
7d221509cd
[Client] Move item magic hook to correct location
...
Previously, synchronization for strike enchantments was partially broken because it triggered the sending of ITEM_MAGIC attack packets, which are only supposed to be sent when a spell is cast from a magical inventory item.
2018-09-10 12:02:21 +03:00
David Cernat
c9ad411dd3
[Client] Fix logic for setting applyProjectileEnchantment in attack sync
2018-09-09 22:33:48 +03:00
Evil Eye
6705e5aae4
forget about the setting till #2887 is implemented at least
2018-09-08 11:21:43 +02:00
Evil Eye
bbcdfd4078
Implements vanilla's off-by-one error, fixing #4611
2018-09-06 21:49:50 +02:00
Capostrophic
9408876b58
Utilize AI GMSTs for priority rating (feature #4632 )
...
Fix on-target effect rating calculation
2018-09-06 17:39:37 +03:00
Capostrophic
d758b573e2
Fix erroneous assumption that ranged weaponry has speed
...
Restrict speed mult to melee weaponry
2018-09-01 12:13:18 +03:00
Capostrophic
ceb6121b33
Better checks for enemy incapacitation
2018-09-01 12:13:18 +03:00
Capostrophic
2965373ed6
Avoid potential zero division
2018-09-01 12:13:18 +03:00
Capostrophic
e66be02e2e
Account for enemy armor rating in weapon rating
2018-09-01 12:13:18 +03:00
Capostrophic
fa3e45fa7d
Slight cleanup
2018-09-01 12:13:18 +03:00
Capostrophic
533b72eff6
Cache weapon type strings
2018-09-01 12:13:18 +03:00
Capostrophic
00c847db19
Make AI Blind, Sound and Silence effect rating more logical
2018-09-01 12:13:18 +03:00
Capostrophic
374e98d665
Make rateWeapon more sensible and account for weapon speed
2018-09-01 12:13:18 +03:00
Marc Zinnschlag
78a84042ad
Merged pull request #1901
2018-09-01 11:08:24 +02:00
Marc Zinnschlag
3b01355f27
Merged pull request #1895
2018-09-01 11:06:38 +02:00
Marc Zinnschlag
f2981a81c9
Merged pull request #1900
2018-09-01 11:06:10 +02:00
Capostrophic
7ef6fa9f61
Remove deprecated GMST get* functions
2018-08-29 18:38:12 +03:00
Andrei Kortunov
5d54214acb
Optimize combat action iteration
2018-08-29 17:20:34 +04:00
Andrei Kortunov
2cac8b59b1
Use square distance to target
2018-08-29 17:20:32 +04:00
Andrei Kortunov
4c0ef4ddb6
Do not initialize magic schools map every time we access it
2018-08-29 17:20:32 +04:00
Capostrophic
23834b5ed8
Don't apply falling damage twice (bug #4608 )
2018-08-29 15:09:03 +03:00