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

2938 commits

Author SHA1 Message Date
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