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

13286 commits

Author SHA1 Message Date
AnyOldName3
8482236a82 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2019-01-24 23:09:23 +00:00
Capostrophic
6660f2f8e6 Use the skeleton from the NPC's set model (bug #4747) 2019-01-25 01:02:27 +03:00
AnyOldName3
9d84853903 Fix nodemask snafu 2019-01-24 18:56:10 +00:00
Frederic Chardon
7ad93c1d3e Gmst typo in MWMechanics::NpcStats::increaseSkill 2019-01-24 13:33:18 +00:00
David Cernat
1df1515c7e [Client] Add logging for invalid enchantmentIds in RecordHelper 2019-01-23 01:04:59 +02:00
David Cernat
999ce857c7 [Client] Add logging for records ignored due to their invalid baseIds 2019-01-23 00:48:06 +02:00
David Cernat
db7e09f441 [Client] Use more consistent logging when reading dynamic record packets 2019-01-23 00:38:05 +02:00
David Cernat
0fa116b47d [Client] Remove useless lines in RecordHelper 2019-01-23 00:20:51 +02:00
Capostrophic
f9a711d2fd Revert poor animation decisions
Start force-updated in-air animation from loop start
Make movement animations have higher priority than jump animations
Make jumping animations have higher priority than turning animations
Don't reset idle during landing animation
Don't play default landing sound if the character is not on ground
2019-01-22 23:21:33 +03:00
Bret Curtis
c5a67c2079
Merge pull request #2137 from elsid/navmesh_render
Avoid useless read of navmeshes from navigator
2019-01-20 20:32:24 +01:00
elsid
13e94ab194
Get navmesh to update osg node only if rendering is enabled 2019-01-20 21:09:06 +03:00
elsid
3572edab72
Update navmesh in a separate method 2019-01-20 19:28:23 +03:00
Andrei Kortunov
1e8b7f0f83 Fix -Wstring-plus-int warnings 2019-01-20 15:46:19 +04:00
David Cernat
fd40e8c971 [Client] Prevent ObjectState spam by not resending an already sent state 2019-01-15 14:26:00 +02: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
Capostrophic
8bb270c2bb Update moved object collisions even if the cell is the same (bug #4800) 2019-01-14 00:56:43 +03:00
David Cernat
6e47b65205 [Client] Set attribute increases & level progress after correct packets
Originally, the PlayerSkill packet contained skills, attribute increases and level progress. In 78441c769a, the attribute increases were moved to the PlayerAttribute packet and the level progress was moved to the PlayerLevel packet, but – due to an oversight – attribute increases and level progress were still being applied to the local player only when a PlayerSkill packet was received, based on whatever values were stored from the last PlayerAttribute and PlayerLevel packets.
2019-01-11 14:26:13 +02: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
David Cernat
8a99f215f6 [Client] Add LocalPlayer::sendItemChange() variant with mwmp::Item arg 2019-01-11 12:54:47 +02:00
David Cernat
db9c1b9882 [Client] Add MechanicsHelper::getItem() for getting mwmp::Item from Ptr 2019-01-11 12:53:26 +02:00
David Cernat
799241e8c6 [Client] Use informative error message for RefData::setCount() issue 2019-01-11 08:16:29 +02:00
Bret Curtis
8834ee95be
Merge pull request #2120 from Capostrophic/macros
Get rid of some remaining instances of C numeric limits
2019-01-10 18:59:34 +01:00
Bret Curtis
9c795195d0
Merge pull request #2109 from Capostrophic/loops
Simplify some world loops
2019-01-10 11:44:41 +01:00
Capostrophic
a71cfca580 Get rid of some remaining instances of C limit macros 2019-01-09 16:06:18 +03:00
Capostrophic
776c6c2fe6 Fix MSVC warning 2019-01-07 20:38:33 +03:00
Andrei Kortunov
0937f02598 Get rid of unnecessary string streams 2019-01-07 21:08:16 +04:00
Andrei Kortunov
b17702bf1f Do not restore birthsign abilities upon game load (bug #4329) 2019-01-07 20:18:21 +04:00
Bret Curtis
de24682e2f
Merge pull request #2115 from Capostrophic/slowfall
Don't reset player jumping flag unnecessarily (bug #4775)
2019-01-07 17:13:39 +01:00
Capostrophic
a1af1ff487 Fix extra semicolon, redundant getStore calls and random creature spawn loop 2019-01-07 17:48:41 +03:00
Bret Curtis
9d1c0d2b22
Merge pull request #2114 from Capostrophic/cleanup
Remove some redundant code
2019-01-07 14:59:39 +01:00
Capostrophic
403db9afe3 Don't reset player jumping flag unnecessarily (bug #4775) 2019-01-07 16:08:26 +03:00
Bret Curtis
573af17cf9
Merge pull request #2097 from akortunov/camerafix
Do not scale player's model in the 1st-person view depending on race
2019-01-07 13:57:21 +01:00
Bret Curtis
93e566a08e
Merge pull request #2117 from Capostrophic/aidata
Make Interiors of Illusion puzzle of Sotha Sil Expanded work (bug #4778)
2019-01-07 13:56:11 +01:00
Andrei Kortunov
ab0841cc3d Split physics update from world update in the profiler 2019-01-07 14:44:43 +04:00
Andrei Kortunov
02a43d0b32 Do not scale player's model in the 1st-person view depending on race (bug #4383) 2019-01-07 12:58:47 +04:00
Capostrophic
92d7f21926 Don't interrupt compilation when spell/effect functions are used for non-actors 2019-01-06 21:45:56 +03:00
David Cernat
43f195f0c7 [Client] Use clearer debug for actor initializations 2019-01-05 23:27:35 +02:00
Capostrophic
624db99bf2 Remove some redundant code 2019-01-05 01:25:52 +03:00
Capostrophic
27eb64c7f0 Clean up fallback record creation again 2019-01-02 13:49:04 +03:00
David Cernat
81e2e48561 [Client] Fix item magic casting synchronization for spell scrolls
Previously, spell scrolls were used up before their IDs could be included in attacks packets supposed to be sent for them.
2018-12-31 13:24:32 +02:00
David Cernat
d83160523f [Client] Add items required for item magic casting when they are missing 2018-12-31 06:55:35 +02:00
David Cernat
433a69a588 [Client] Send all data for newly initialized LocalActors at least once 2018-12-31 04:36:59 +02:00
David Cernat
e96091fd6b [General] Use more consistent variable names for password, address, etc. 2018-12-30 17:23:12 +02:00
Capostrophic
0ab5314755 Make scripted items not stack (bug #2969) 2018-12-30 18:18:33 +03:00
Capostrophic
8a266803eb Simplify some world loops 2018-12-30 15:36:42 +03:00
David Cernat
906d2a837d [Client] Send PlayerInventory packets when recharging items w/ soulgems 2018-12-30 11:58:33 +02: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
Bret Curtis
932691d199
Merge pull request #2091 from Capostrophic/fallheight
Avoid falling height reset if on-ground state wasn't actually updated (bug #4411)
2018-12-29 08:26:28 +01:00
Bret Curtis
d80d056140
Merge pull request #2098 from xyzz/fix-loading-screen-uaf
loadingscreen: Fix UaF in loading screen.
2018-12-28 18:58:04 +01:00
Bret Curtis
91b962c095
Merge pull request #2099 from xyzz/replace-volatile-atomic
Replace volatile bools with std::atomic<bool>
2018-12-28 16:41:07 +01:00
Capostrophic
7155e787b4 Clean up fallback record creation 2018-12-28 01:22:24 +03:00
David Cernat
343dd8b5ea [Client] Fix addition of items to player inventories
Previously, multiple stacks of the same item ID could overwrite data in each other because of how the logic in ContainerStore::add() works. For example, a stack of 5 grand soul gems with no souls would get added to the player, then the attempt to add a grand soul gem with a particular soul would retrieve the previous stack first before setting all of it to that soul, resulting in 6 grand soul gems with that soul.
2018-12-26 13:41:19 +02:00
David Cernat
76ac905efc [Client] Send PlayerInventory packets when trapping souls in soulgems 2018-12-26 12:25:00 +02:00
David Cernat
f853368641 [Client] Fix loss of player items in ContainerStore::unstack()
Previously, unstacking items for a player led to a PlayerInventory packet being sent about the items' removal.

This change makes it so both a packet about their re-addition and their removal are sent instead, cancelling each other out, which is inelegant, but arguably preferable to complicating the sending of PlayerInventory packets again.
2018-12-26 12:24:26 +02:00
Ilya Zhuravlev
1bdec2399f Make sure CopyFramebufferToTextureCallback is only called once and not every frame 2018-12-25 11:56:24 -05:00
Ilya Zhuravlev
07e9ce84b3 Replace volatile bools with std::atomic<bool> 2018-12-24 14:19:35 -05:00
Ilya Zhuravlev
8e7c01b561 loadingscreen: Fix UaF in loading screen.
When the CopyFramebufferToTextureCallback callback is called, in its operator() it resets setInitialDrawCallback by providing a NULL pointer.
However, this causes the callback to get deleted. In turn, the "this" pointer is invalidated.
When execution returns to DrawCallback::run, it accesses a _nestedCallback member of deleted "this" which is UB.
2018-12-24 14:18:26 -05:00
Ilya Zhuravlev
98b2c04404 android: Add a method so that we can send relative mouse movements from java. 2018-12-23 15:14:29 -05:00
Capostrophic
0bbcc0e787 Avoid falling height reset if onGround state didn't change (bug #4411) 2018-12-23 13:39:35 +03:00
Ilya Zhuravlev
09585b7208 android_main.c: Replace nullptr back to NULL since there are no nullptr in C 2018-12-22 22:21:26 -05:00
AnyOldName3
e2515f6db7 Merge branch 'master' into osgshadow-test-vdsm 2018-12-18 19:51:27 +00:00
Bret Curtis
6d7aacab5e
Merge pull request #2053 from akortunov/animatedContainers
Native animated containers support
2018-12-17 10:00:07 +01:00
Bret Curtis
d2c88f0983
Merge pull request #2071 from Capostrophic/sneaking
Don't interrupt sneak and swim idles in attack ready state in first person view (bug #4750)
2018-12-17 09:34:27 +01:00
David Cernat
50714599d9 [Client] Spawn at exterior 0, -7 by default 2018-12-17 08:25:22 +02:00
Andrei Kortunov
a53333c3d5 Native animated containers support (feature #4730) 2018-12-13 23:11:16 +04:00
terrabyte25
c31fa3074e
Sanity check for text input in toggleWalking 2018-12-12 14:40:15 -06:00
Capostrophic
6083e5ed4b Don't interrupt sneak and swim idles in first person view (bug #4750) 2018-12-10 00:05:06 +03:00
David Cernat
afd17e5a48 [Client] Don't finish drag & drop that is supposed to be unsuccessful
This prevents items from vanishing when your attempt to drop them in a full container is denied.
2018-12-06 18:11:52 +02:00
Marc Zinnschlag
d791dcfbf3 Merged pull request #2051 2018-12-06 13:10:48 +01:00
Capostrophic
7b33838b33 Don't consider non-solid actors truly levitating (bug #4746) 2018-12-05 23:37:32 +03:00
David Cernat
a6c6db89fc [Client] Send object packets when scripts use PlaceItem/PlaceItemCell 2018-12-05 01:56:27 +02:00
Capostrophic
5c8c079718 Fix incorrect event argument which messed with hidden light pointers 2018-12-04 17:07:03 +03:00
David Cernat
d05a82a734 [Client] Avoid repetitive code when unequipping items in resurrection 2018-12-04 03:55:03 +02:00
Bret Curtis
807cab568e
Merge pull request #2050 from Capostrophic/markers
[Regression] Revert unnecessary case changes for fallback records
2018-12-02 11:16:20 +01:00
Bret Curtis
b1ca6c6e95
Merge pull request #2045 from akortunov/animfix
[Testing needed] Fix regressions in the animation system
2018-12-02 11:14:44 +01:00
terrabyte25
35755eb1f1
[Client] Disallow opening inventory menu when not logged in 2018-12-01 10:51:33 -06:00
Capostrophic
7b5932a49d Add Invert X Axis option (feature #3610) 2018-12-01 19:08:02 +03:00
Capostrophic
c59513c30c Revert unnecessary case changes for fallback records 2018-12-01 17:12:27 +03:00
David Cernat
b39e3f518b [Client] Use correct log levels for inventory and dynamic record packets 2018-11-30 23:38:16 +02:00
AnyOldName3
642002b302 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-11-29 01:19:01 +00:00
Andrei Kortunov
880ec3ce7b Fix visible sheaths for invisible actors 2018-11-24 14:57:41 +04:00
Andrei Kortunov
671f2811d5 Fix regressions in the animation system (bug #4729) 2018-11-23 20:22:37 +04:00
Andrei Kortunov
e8b3ae8706 Improve ResetActors command (bug #4723) 2018-11-20 21:53:27 +04:00
Andrei Kortunov
7438e20ee1 Fix shield displaying on inventory avatar (bug #4720) 2018-11-17 22:42:29 +04:00
Testman
6b3f598837
Use more descriptive terminology for chat modes
Changed "Chat disabled" to "Chat hidden", "Chat enabled" to "Chat visible" and "Chat in hidden mode" to "Chat appearing when needed".
2018-11-17 16:54:14 +01:00
Bret Curtis
a21792657a
Merge pull request #2034 from akortunov/guifixes
Improve GUI cleanup
2018-11-15 07:31:57 +01:00
Bret Curtis
419e7ea5a2
Merge pull request #2035 from akortunov/coverity
Fix many Coverity Scan warnings
2018-11-14 09:44:30 +01:00
Bret Curtis
8a66dec865
Merge pull request #2031 from akortunov/warnfix
Fix some Clang 7 warnings
2018-11-14 09:43:39 +01:00
Andrei Kortunov
4ee15ddcb9 Fix many Coverity Scan warnings 2018-11-14 11:21:49 +04:00
David Cernat
e834a4ec74 [Client] Find closest enchantmentCharge in getItemPtrFromStore()
Enchanted inventory items continuously recharge their enchantment charges, which getItemPtrFromStore() should account for.

Additionally, prevent framelistener errors caused by PlayerItemUse packets about non-existent items.
2018-11-13 20:36:31 +02:00
Andrei Kortunov
5e071e3eb0 Add a missing check if mPtr is empty (bug #4715) 2018-11-13 10:32:23 +04:00
Andrei Kortunov
71f1a53090 Improve tooltips cleanup (bug #4714) 2018-11-13 10:00:12 +04:00
Bret Curtis
0f29a73fc9
Merge pull request #2025 from Capostrophic/actorloops
Use C++11 for close actor-iterating loops and avoid some redundant operations
2018-11-12 10:43:49 +01:00
Andrei Kortunov
d2613e35a2 Fix some Clang 7 warnings 2018-11-09 19:42:59 +04:00
AnyOldName3
02a8c6a7ce
Merge branch 'master' into pr/fix-hidpi-resolution 2018-11-08 23:05:07 +00:00
Bret Curtis
228f6b572f
Merge branch 'master' into prisonmarker 2018-11-08 21:11:24 +01:00
Bret Curtis
f6243fae83
Merge pull request #1615 from akortunov/holstered_weapons
Weapon sheathing
2018-11-08 20:44:20 +01:00
Capostrophic
6d48d9329e Avoid making string copies instead of references 2018-11-08 17:03:29 +03:00
Stanislaw Halik
8fd71fe4ad fix rain delay when exiting water
When the particle system updates its internal state noting that it's
been culled, it stops emitting any further particles. Prevent it from
having that knowledge.

v2: Fix off-by-one-frame error following review by @AnyOldName3
2018-11-07 20:55:45 +00: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
Capostrophic
4efe1bc892 Add prison marker record fallback definition (bug #4701) 2018-11-05 19:37:46 +03:00
Stanislaw Halik
5e3e01cac0 fix resolution on HiDPI displays under Windows
The same Windows functionality as scaling user interface elements,
confuses fullscreen games unless they set a particular of metadata to
indicate that they perform the scaling by themselves.

What happened was treating 2160p as 1440p despite the former being
chosen. The same occured with other game title prior to introducing the
metadata bits.

Fortunately with CMake there's no need to invoke the mt.exe "manifest
tool" manually.

Note that the setting of "per-monitor DPI aware" still leaves openmw
confused, hence the choice of global-DPI-aware.
2018-11-05 16:16:09 +00:00
Andrei Kortunov
92e45507d8 Weapon sheathing support, including quivers and scabbards (feature #4673) 2018-11-05 11:18:20 +04:00
Bret Curtis
c114e1278e
Merge pull request #1978 from akortunov/ffmpeg3
Migrate to FFMPEG3
2018-11-05 07:52:43 +01:00
elsid
db5638bf6d
Add global recast allocator to allocate temp buffers on stack 2018-11-04 18:11:15 +03:00
Andrei Kortunov
f88d5e808c Rewrite media decoder to use FFMpeg 3.2+ API (task #4686) 2018-11-03 22:34:25 +04:00
Andrei Kortunov
829faf7b2c Improve toggleactorspaths console command 2018-11-03 10:42:14 +04:00
AnyOldName3
b178e1868a Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-11-03 00:27:40 +00:00
AnyOldName3
3c25e7b93d
Merge pull request #2010 from AnyOldName3/windows-debug-build-fix
Include missing Windows header before calling Windows-specific functions and switch CMake compile definitions to the new style.
2018-11-02 23:57:44 +00:00
AnyOldName3
e2ddb39591 Remove incorrect comment 2018-11-02 17:30:54 +00: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
AnyOldName3
d0c254bc7e Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-11-01 16:48:21 +00:00
elsid
792a0585c0 Add recastnavigation as subdirectory 2018-11-01 17:01:22 +01:00
Andrei Kortunov
f1eb702851 Mark virtual methods in the mechanicsmanagerimp.hpp as overrides 2018-10-31 10:09:32 +04:00
AnyOldName3
3785ba6aa0 Merge upstream/master 2018-10-30 22:38:09 +00:00
AnyOldName3
eb44de3e6b Disable shadows properly for water reflection/refraction RTT targets, eliminating remaining OpenGL errors. 2018-10-30 22:34:53 +00: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
Bret Curtis
6f8a15afb0
Merge pull request #1996 from Capostrophic/cleanup
Clean up redundant getClass() calls in classes
2018-10-28 19:39:39 +01: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
Capostrophic
4b1d287eda Clean up redundant getClass calls in classes 2018-10-28 17:03:38 +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
Bret Curtis
3cd59d4a89
Merge pull request #1993 from akortunov/loadingbar
Center progress bar when there are active messageboxes
2018-10-28 14:43:33 +01:00
elsid
abc51a8a17 Add settings option to set max number of polygons per navmesh tile 2018-10-28 15:36:47 +03:00
Andrei Kortunov
06d226a1b7 Minor tweaks for actors processing range setting 2018-10-28 15:08:24 +04:00
Andrei Kortunov
6e05853478 Center progress bar when there are active messageboxes (bug #4691) 2018-10-28 14:40:48 +04:00
Marc Zinnschlag
9dd0d641bc Merged pull request #1931 2018-10-28 11:02:33 +01:00
Koncord
e5e13b21ae [Client] Fix crash on drag&drop 2018-10-28 16:56:04 +08:00
Bret Curtis
9f4892ce92
Merge pull request #1990 from Capostrophic/absorption
Avoid making expensive visitEffectSources calls if no spell absorption effect is active
2018-10-27 17:45:48 +02:00
Capostrophic
abdf40e0d5 Avoid making expensive visitEffectSources calls if no spell absorption effect is active 2018-10-27 16:38:04 +03:00
Capostrophic
b6f23cd366 Make constants usage more obvious 2018-10-27 13:27:25 +03:00
David Cernat
c65d6c1328 [Client] Disable mListener methods in mwworld/containerstore
This should put an end to frequent crashes until I can fix the problem properly.
2018-10-27 02:19:45 +03:00
Capostrophic
4873d33642 Adjust magic light source linear attenuation (bug #3890) 2018-10-27 01:27:05 +03:00
David Cernat
1baf82db32 [Client] Avoid PlayerSpellbook packet spam in some mods 2018-10-26 19:07:35 +03:00
Marc Zinnschlag
3ead33814f Merge remote-tracking branch 'upstream/master' 2018-10-26 13:02:06 +02:00
Capostrophic
19ce1abcdf Fix selected weapon HUD durability percentage 2018-10-26 12:53:15 +03:00
Andrei Kortunov
bf9e8c4556 Make spell absorption multiplicative (bug #4684) 2018-10-26 12:36:58 +04:00
David Cernat
d9bc1abf48 [Client] Don't send ObjectScale packets if not logged in 2018-10-26 02:33:47 +03:00
David Cernat
a8cf1e02c4 [Client] Allow unilateral scripted container changes not from console
This prevents infinite loops in certain client scripts from mods that use while loops to determine that all items of a certain type have been removed from a container, such as in the script BCSwap2Arg from  Better_Clothes.
2018-10-25 22:38:45 +03: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
Bret Curtis
0fad2449f3
Merge pull request #1982 from Capostrophic/condition
Avoid item condition and charge zero divisions
2018-10-25 17:22:02 +02:00
Capostrophic
c3e8d536cd Implement getNormalizedEnchantmentCharge() method and use it 2018-10-25 16:16:07 +03:00
Capostrophic
54bd7b2dcf Implement getItemNormalizedHealth() method and use it 2018-10-25 15:45:31 +03:00
Marc Zinnschlag
2c8bbde7ef Merged pull request #1979 2018-10-25 11:16:26 +02:00
Marc Zinnschlag
4d88d6dd58 Merged pull request #1980 2018-10-25 11:06:22 +02:00
Bret Curtis
375354ab6b
Merge pull request #1974 from akortunov/coverity
Fix some issues found by Coverity Scan
2018-10-25 09:42:51 +02:00
AnyOldName3
1e2bf9c447 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-10-24 20:13:13 +01:00
Capostrophic
67de61e1fb Avoid item condition and charge zero divisions 2018-10-24 19:06:55 +03:00
Capostrophic
4ce35c6ad5 Fix fixme behavior in interiors 2018-10-24 01:43:38 +03:00
Andrei Kortunov
61e6e359c4 Allow creatures to use the autogenerated collision box (feature #2787) 2018-10-22 15:48:23 +04:00
David Cernat
17f13872aa [Client] Use forceUpdate correctly in LocalPlayer::updateStatsDynamic()
Previously, the forceUpdate argument was useless, preventing dynamic stats from being sent by certain newly created characters.
2018-10-22 13:22:23 +03:00
Capostrophic
9809eef18e Utilize the default soundgen entries when necessary (bug #4689) 2018-10-21 11:32:23 +03:00
Andrei Kortunov
46bf45a6e2 Remove redundant code 2018-10-19 16:16:18 +04:00
Bret Curtis
6c4116cc8b
Merge pull request #1972 from akortunov/equipfix
Force actor to the 'weapon equipped' state if the weapon disappeared in the middle of attack
2018-10-18 16:43:05 +02:00
Andrei Kortunov
8fa0ffcfe4 Catch exceptions inside the loadVoice() (bug #4685) 2018-10-18 15:02:23 +04: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
AnyOldName3
474770eca8 Switch shadow map rendering to a specialised, simplified shader. 2018-10-16 21:23:31 +01: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
Andrei Kortunov
13bd81f896 Try to use collisions from basic actor model if an animated one has no collisions (feature #4682) 2018-10-16 22:28:19 +04: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
Bret Curtis
8cb407cfdf
Merge pull request #1969 from Capostrophic/soundgen
Support soundgen calls for activators (feature #4285)
2018-10-15 14:43:11 +02:00
Capostrophic
bf3f82b9d4 Cleanup 2018-10-14 21:28:43 +03:00
Capostrophic
6ef7be3fd3 Re-enable using soundgen land for creatures 2018-10-14 20:18:17 +03:00
Capostrophic
19fd404b7b Support soundgen calls for activators (feature #4285) 2018-10-14 15:36:07 +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
ed73d130f9
Cache navmesh tiles
Use LRU modification to hold currently used items. Use RecastMesh binary
data for item key.

Store original pointer of btCollisionShape in user pointer to make available
it as an identifier within all duplicates. Use pointer to heights data array
for btHeightfieldTerrainShape.
2018-10-13 22:22:12 +03:00
elsid
1a27489904
Add special type for object id 2018-10-13 22:16:35 +03:00
elsid
7c80bb9411
Support multiple threads for async nav mesh updater 2018-10-13 22:16:34 +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
ff478aba6d
Use actor half extent for interior cells 2018-10-13 22:16:33 +03:00
elsid
346e9e3141
Add off mesh connections for doors without teleport 2018-10-13 22:16:33 +03:00
elsid
f8dbd5902f
Update doors objects in navigator 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
c95cea414c
Support water for NavMesh 2018-10-13 22:16:32 +03:00
elsid
fa23b590a4
Add unwalkable areas to NavMesh 2018-10-13 22:16:32 +03:00
elsid
c3298d13a6
Add log sinks (stdout and file) 2018-10-13 22:16:31 +03:00
elsid
144e1a063b
Support animated objects 2018-10-13 22:16:30 +03:00
elsid
4aba0fa85f
Limit number of NavMesh tiles to add by distance from player tile 2018-10-13 22:16:30 +03:00
elsid
dbb1d99bff
Add NavMeshItem generation to fix update NavMesh for render 2018-10-13 22:16:30 +03:00
elsid
6f3028b8f9
Update navigator when unload cell or add/remove object to scene 2018-10-13 22:16:29 +03:00
elsid
faaf50446d
Option to initially enable NavMesh render 2018-10-13 22:16:28 +03:00
elsid
02ce4a7e50
Log to detournavigator log cell load and unload 2018-10-13 22:16:28 +03:00
elsid
ed3a255f65
Do not use NavMesh to find changed tiles 2018-10-13 22:16:28 +03:00
elsid
70a369f70e
Add command to enable NavMesh render
togglenavmesh or tnm
2018-10-13 22:16:28 +03:00
elsid
dd5e6a61a3
Support btCompoundShape for RecastMesh 2018-10-13 22:16:27 +03:00
elsid
373adc6ec4
Option to enable/disable file names revisions 2018-10-13 22:16:27 +03:00
elsid
d1d034a1ec
Update NavMesh one by one tile in order from nearest to player 2018-10-13 22:16:26 +03:00
elsid
41caca24ee
Options to enable/disable write recast mesh and nav mesh into file 2018-10-13 22:16:26 +03:00
elsid
6d233ae868
Option in settings to enable/disable detour navigator debug log 2018-10-13 22:16:26 +03:00
elsid
0c8db84962
Load cells in order from nearest to player to furthest 2018-10-13 22:16:26 +03:00
elsid
0c8a7295e6
Use only player's half extents 2018-10-13 22:16:25 +03:00
elsid
fafba8ea0c
Use recastnavigation to find path 2018-10-13 22:16:25 +03:00
elsid
3d97e96f55
Add dependency to recastnavigation 2018-10-13 22:16:25 +03:00
elsid
e707202f88
Use local constant 2018-10-13 22:16:24 +03:00
elsid
ed89126828
Fix warning implicit conversion changes singedness 2018-10-13 22:16:24 +03:00
elsid
c866fdff86
Move physics object, heightfield, ptrholder into separate files 2018-10-13 22:16:24 +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
David Cernat
d9dd7073cf [General] Send certain packets only when logged in
Previously, client mods adding packet-sending scripts to the spawn area made clients send the associated packets as soon as they inputted their character name when joining a server using those mods. This made the clients either get disconnected for not replying to a handshake first, or it made them get kicked for sending object packets that are disallowed for players who are not logged in.

To fix this, LocalPlayer's hasFinishedCharGen() has been replaced with isLoggedIn(), because the former was already returning true when players inputted their names.
2018-10-13 15:36:13 +03:00
David Cernat
66d666d60c [Client] Use less confusing terminology when displaying plugin mismatch 2018-10-13 14:40:49 +03:00
Marc Zinnschlag
b30e309532 Merged pull request #1967 2018-10-13 11:15:45 +02:00
Andrei Kortunov
dad0b78901 Avoid overflow when handling output characters (bug #4676) 2018-10-12 20:41:03 +04:00
Sam Hellawell
df1667b6e4 Cleanup fix for equip item crash on Linux
Signed-off-by: Sam Hellawell <sshellawell@gmail.com>
2018-10-11 21:49:24 +01:00
Sam Hellawell
1e171ad9fd Fix crash when equipping item on linux
Signed-off-by: Sam Hellawell <sshellawell@gmail.com>
2018-10-11 20:13:22 +01:00
AnyOldName3
0124be5713 Merge upstream/master 2018-10-10 21:23:19 +01:00
Capostrophic
47b1b0ac39 Re-fix water reflections while making a no-GUI screenshot 2018-10-10 22:44:26 +03:00
Capostrophic
4ec727c50b Disallow to open the journal while settings window is open (bug #4674) 2018-10-10 18:33:56 +03:00
Marc Zinnschlag
2d87d1d9d2 Merged pull request #1959 2018-10-10 15:05:29 +02:00
Marc Zinnschlag
d466785aa7 Merged pull request #1958 2018-10-10 15:04:32 +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
David Cernat
e402a17757 [Client] Don't cast non-weapons to weapons in isUsingRangedWeapon()
This makes lockpicks and probes work again.
2018-10-09 09:54:13 +03: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
Capostrophic
cae2e84ab4 Trace the player down after enabling collision with TCL (bug #4669) 2018-10-08 16:15:15 +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
503352e840 Merged pull request #1951 2018-10-03 13:23:56 +02: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
Andrei Kortunov
3896a2eba6 Do not use a PartHolder for spell effect node 2018-10-01 20:18:20 +04:00
Andrei Kortunov
632045e145 Improve the 'part has no parents' warning 2018-10-01 20:18:19 +04:00
Andrei Kortunov
4dc424036f Cleanup magic effects, when create a new ActorAnimation 2018-10-01 20:17:58 +04:00
Capostrophic
674e33170b Fix quick key system regressions (bug #4662) 2018-09-30 21:16:02 +03:00
Marc Zinnschlag
38758a9555 Merged pull request #1944 2018-09-29 11:16:14 +02:00
Marc Zinnschlag
33044add97 Merged pull request #1938 2018-09-28 11:31:45 +02:00
Marc Zinnschlag
3dc15d39e3 Merged pull request #1936 2018-09-28 11:30:13 +02:00
Capostrophic
2e98cad895 Fade out sun glare and specularity completely at night start, not sunset start 2018-09-27 17:34:46 +03:00
Kyle Cooley
e2ac392a40 Move common stuff to scene util, fix errors with 1st person meshes 2018-09-27 13:14:59 +04:00
Kyle Cooley
8444ee9981 Start rendering npc's 2018-09-27 13:14:59 +04:00
Marc Zinnschlag
5fa9b32e76 Merged pull request #1937 2018-09-27 11:06:21 +02:00
Marc Zinnschlag
43880ca47b Merged pull request #1919 2018-09-27 11:06:00 +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
Marc Zinnschlag
0e06a25f21 Merged pull request #1935 2018-09-25 12:11:20 +02: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
Sergey Fukanchik
b2a52a5b6c Change 'after function'-style doxygen comment to normal. 2018-09-24 14:59:10 +03:00
Marc Zinnschlag
6ce6108eb4 Merged pull request #1932 2018-09-24 11:57:08 +02:00
Marc Zinnschlag
84a2752db9 Merged pull request #1933 2018-09-24 11:53:07 +02:00
David Cernat
f100a660d4 [General] Fix ranged attack sync when using last throwing weapon or ammo 2018-09-24 11:30:53 +03:00
David Cernat
3f304866fd [Client] Use clearer variable names in DedicatedPlayer::setEquipment() 2018-09-24 10:11:42 +03:00
Sergey Fukanchik
f00f35ba86 Add const to canRest() 2018-09-23 06:25:20 +03:00
Sergey Fukanchik
f2e11e6def Fix MSVC C4596 illegal qualified name 2018-09-23 04:06:29 +03:00
Capostrophic
52da65b776 Fix issues with sun specularity (bug #4527) 2018-09-23 03:39:06 +03:00
Sergey Fukanchik
44bcd9b25f Fix tab characters 2018-09-23 02:46:29 +03: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
Sergey Fukanchik
c50ee22772 Wrap up World::canRest() implementation by moving enemiesNearby() from InputManager::rest() to World::canRest(). 2018-09-23 01:52:56 +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
b3fd173e00 Check if current weapon has health at all in HUD (bug #4648) 2018-09-22 06:51:56 +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
01b3f92f7e Make coc and fixme console commands close to vanilla (bug #4292, bug #4217) 2018-09-20 16:25:02 +04: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
82d37dda20 Merged pull request #1927 2018-09-20 13:31:41 +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
Andrei Kortunov
62f6f174cf Show attack speed of ranged weapons 2018-09-19 12:23:21 +04:00
Andrei Kortunov
989de05f80 Do not show duration for infinite light sources as -1 2018-09-18 15:23:16 +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
6d0e6ab012 Use book font by default in the text formatter 2018-09-17 22:24:21 +04:00
Andrei Kortunov
dda02bd696 Do not use book fonts for dialogue window 2018-09-17 19:56:36 +04: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
Marc Zinnschlag
06b2a23e74 Merged pull request #1768 2018-09-17 12:10:21 +02:00
Marc Zinnschlag
c6b62308cd Merged pull request #1921 2018-09-17 12:02:44 +02:00
Marc Zinnschlag
29f6ee30a6 Merged pull request #1922 2018-09-17 12:00:49 +02:00
Andrei Kortunov
2961f0d810 Allow to use the %Name for creatures (bug #4644) 2018-09-16 21:53:28 +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
Capostrophic
5909297809 Make underwater SFX always apply based on camera position (bug #4532) 2018-09-15 23:26:07 +03:00
David Cernat
33a0886790 [Client] Fix synchronization of knockdown states 2018-09-15 04:59:06 +03:00
David Cernat
490303dc0b [Client] Clean up MechanicsHelper::processAttack() slightly
The debug is now more descriptive and some code is now skipped for non-ranged attacks.
2018-09-15 04:11:43 +03:00
Bret Curtis
6035636e29
Merge pull request #1915 from akortunov/enterfix
Disable repeating for Accept GUI action
2018-09-14 15:17:47 +02: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
David Cernat
af49f711ca [Client] Add isUsingRangedWeapon() method to MechanicsHelper 2018-09-14 13:21:45 +03:00
Marc Zinnschlag
ea053d9f47 Merged pull request #1881 2018-09-14 11:43:11 +02:00
Marc Zinnschlag
252ed9bd4b Merged pull request #1914 2018-09-13 11:53:21 +02:00
Capostrophic
664c630ac0 Don't make sTo strings static references 2018-09-12 16:36:03 +03:00
Andrei Kortunov
e300a16b24 Use field for columns count instead of out integer 2018-09-12 14:31:01 +04:00
Andrei Kortunov
7a986f38da Support for user-defined TrueType fonts 2018-09-12 14:31:01 +04:00
Andrei Kortunov
c9c0230d2a Scale journal fonts separately from common ones 2018-09-12 14:31:01 +04:00
Andrei Kortunov
f89393fd62 Validate 'ttf resolution' option value 2018-09-12 14:31:01 +04:00
Andrei Kortunov
adbaeb7cca Improve GUI scaling (bug #3288) 2018-09-12 14:31:01 +04:00
Marc Zinnschlag
6100e34051 Merged pull request #1912 2018-09-12 12:04:49 +02:00
Marc Zinnschlag
2ba15c86f8 Merged pull request #1913 2018-09-12 12:01:13 +02:00
Marc Zinnschlag
3fd40e4a4e Merged pull request #1916 2018-09-12 11:58:39 +02:00
Marc Zinnschlag
50775dd411 Merged pull request #1917 2018-09-12 11:38:52 +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
3f6ca6f22b [Client] Bring drawState fallback for actors up-to-date w/ attack types 2018-09-11 15:12:11 +03:00
David Cernat
9d2cf6629b [Client] Fix logic for hand-to-hand attack sync 2018-09-11 15:07:44 +03: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
9918212a1e Set focus to Close button when opening the container window (bug #4333) 2018-09-11 11:22:26 +04:00
Andrei Kortunov
c2c24a76a4 Handle MyGUI exceptions inside destructors 2018-09-11 11:11:27 +04:00
Andrei Kortunov
d5bcc49079 Initialize missing struct fields 2018-09-11 11:11:24 +04:00
Andrei Kortunov
e5a81b1f99 Fix some issues, found by Coverity Scan 2018-09-10 16:35:27 +04:00
Andrei Kortunov
dcc1a122f7 Use drag and drop for ActionTake when InventoryWindow is active (bug #4543) 2018-09-10 15:18:07 +04:00
David Cernat
31a9b77f34 [Client] Reset hitPosition in MechanicsHelper::resetAttack() 2018-09-10 12:34:33 +03: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
Andrei Kortunov
269ef7a559 Disable repeating for ENTER key in GUI 2018-09-10 12:55:00 +04:00
David Cernat
c9ad411dd3 [Client] Fix logic for setting applyProjectileEnchantment in attack sync 2018-09-09 22:33:48 +03:00
Andrei Kortunov
33a66b778f Disable repeating for Accept action in keyboard navigation (bug #4260) 2018-09-09 23:10:09 +04:00
Capostrophic
702868255a Use sTo GMST in spellmaking menu (feature #4636) 2018-09-09 13:56:58 +03:00
Capostrophic
6ab42919cf Make sure the actor is actually crouching/running before tweaking movement speed 2018-09-08 22:43:09 +03:00
Evil Eye
6705e5aae4 forget about the setting till #2887 is implemented at least 2018-09-08 11:21:43 +02:00
David Cernat
8012d0d7b7 [General] Include hit position in PlayerAttack and ActorAttack packets 2018-09-08 05:29:49 +03:00
David Cernat
dcd4478028 [Client] Always stop sending weather updates when moving to an interior 2018-09-07 08:37:22 +03: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
David Cernat
113002ca19 [Client] Return early when processing actors that can't be initialized 2018-09-05 20:03:35 +03:00
Bret Curtis
86809af2cd
Merge pull request #1908 from akortunov/warnfix
Fix some warnings
2018-09-04 16:00:37 +02:00
Andrei Kortunov
aed7c1b2bb Fix a couple of Clang warnings 2018-09-04 12:37:43 +04: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
Marc Zinnschlag
ef72024e2c Merged pull request #1902 2018-09-01 11:01:05 +02:00
Capostrophic
b673cdf70e Grant Enchant experience even if recharging fails (bug #4622) 2018-08-30 23:52:33 +03: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
Capostrophic
b8ba9092cb Purge effects from all permanent spells with the same ID 2018-08-29 14:09:43 +03:00
Capostrophic
ed1f8f7be7 Remove effects from all active spells with the same ID 2018-08-29 13:52:03 +03:00
Capostrophic
6c47f95677 Make RemoveSpellEffects affect permanent spells (bug #3920)
Also make it remove the effects but not the spells themselves
2018-08-29 13:52:03 +03:00
Marc Zinnschlag
c280a71b33 Merged pull request #1897 2018-08-29 12:15:05 +02:00
Marc Zinnschlag
57922a272c Merged pull request #1899 2018-08-29 12:13:28 +02:00
Marc Zinnschlag
6fc6fef72e Merged pull request #1892 2018-08-29 12:08:13 +02:00
Marc Zinnschlag
f05e494f6f Merged pull request #1894 2018-08-29 12:06:42 +02:00
Marc Zinnschlag
21d414187f Merged pull request #1896 2018-08-29 12:05:50 +02:00
Marc Zinnschlag
e4e18d6642 Merged pull request #1869 2018-08-29 12:02:56 +02:00
Capostrophic
7f459f0610 Knockdown and godmode fixes
Make sure an incapacitated player is not able to jump
Cleanup of redundant player and godmode checks in creature class
Make sure the player is not knocked down while in godmode
2018-08-28 16:42:15 +03:00
Capostrophic
079b60c1ea Don't allow actors to use sneaking while flying (bug #4618) 2018-08-28 14:32:03 +03:00
David Cernat
3bd8aa82fe [General] Reduce inventory-sending hooks to just 2 in ContainerStore
Whenever an item is added to or removed from the player's ContainerStore, that player sends a PlayerInventory packet with just that addition or removal.

This eliminates all the unnecessary packet spam related to oversized PlayerInventory packets that had existed in one form or another since the initial implementation of inventory sync in 1b259e2d33

Additionally, move booleans from BasePlayer to LocalPlayer when they are only needed on the client, and make the usage of the isReceivingQuickKeys boolean consistent with the new isReceivingInventory boolean by having them both in the processors of their associated packets.
2018-08-28 05:01:52 +03:00
Capostrophic
2564fcc37e Apply sneaking offset to camera while the character is in air (bug #4617) 2018-08-28 03:35:42 +03:00
Andrei Kortunov
8fa6c6f726 Update pinned windows in-game (bug #4560) 2018-08-27 09:44:04 +04:00
Andrei Kortunov
d448b802ef Add a small threshold for player turning animations 2018-08-26 22:58:26 +04:00
Andrei Kortunov
60698e6f8a Optimize new magic effects update system 2018-08-26 21:02:14 +04:00
Sophie Kirschner
a1e076a37e Merge branch 'master' into pineapple/fix-video-incomplete-type-2
Resolve merge issues related to CHANGELOG.md

* master:
  Optimize skinning (task #4605)
  Update changelog
  Update some comments
  Set the OpenAL source offset after setting the buffer
  Make Move and MoveWorld console commands move actors standing on moving object (bug #2274)
  Adding Changelog entry
  Allow messageboxes arguments to have newline characters (bug #3836)
  Check for impact immediately when launch a projectile (bug #3059)
  Fix gold count calculation in pickupObject (bug #4604)
  Correct special case soundgen comparisons
  Move "land" check earlier
  Fixes #3681
  Play landing sound manually and ignore land soundgen textkeys (bug #2256)
  Make some more optimizations to actor processing loops
  Fix freeze in getActorsSidingWith
  Addiong missing "to" word
  Adding common problems that were previous on the site FAQ
  Treat <> and << operators as < and  >< and >> as > in scripts
  stage1: priorities for event music and other minor improvements to the music system

# Conflicts:
#	CHANGELOG.md
2018-08-26 12:05:02 +03:00
Andrei Kortunov
c6dcfd1fce Do not apply scale twice for animated collision nodes (bug #4607) 2018-08-25 17:26:17 +04:00
Sophie Kirschner
dd01c4d224 Fix: 'sizeof' to an incomplete type 'Video::VideoPlayer'
Alternate solution to same problem reported in https://github.com/OpenMW/openmw/pull/1888
2018-08-25 11:53:43 +03:00
Chris Robinson
c2b3ca9638 Update some comments
It wasn't actually a bug in OSX like the comment said, but intended behavior.
2018-08-25 01:24:35 -07:00
Chris Robinson
4e3ae85c11 Set the OpenAL source offset after setting the buffer
This is to work around a bug in the Rapture3D driver.
2018-08-25 01:24:35 -07:00
Marc Zinnschlag
c2c595407c Merged pull request #1883 2018-08-25 10:07:56 +02:00
Marc Zinnschlag
f25a9a6fb3 Merged pull request #1885 2018-08-25 10:00:22 +02:00
Andrei Kortunov
de08c1cb1b Make Move and MoveWorld console commands move actors standing on moving object (bug #2274) 2018-08-25 10:34:33 +04:00
Andrei Kortunov
3d4f5536d2 Check for impact immediately when launch a projectile (bug #3059) 2018-08-24 15:03:54 +04:00
Bret Curtis
78d9787212
Merge pull request #1880 from Capostrophic/landing
Play landing sound manually and ignore land soundgen textkeys (bug #2256)
2018-08-23 08:40:55 +02:00
Capostrophic
3f76f1d3ed Fix gold count calculation in pickupObject (bug #4604) 2018-08-22 22:35:22 +03:00
Capostrophic
f74ebb64af Correct special case soundgen comparisons 2018-08-22 16:36:15 +03:00
Capostrophic
ae0a6a22b3 Move "land" check earlier 2018-08-22 14:47:06 +03:00
Capostrophic
2b45fd84ea Play landing sound manually and ignore land soundgen textkeys (bug #2256) 2018-08-21 19:03:03 +03:00
Capostrophic
910065f38f Make some more optimizations to actor processing loops 2018-08-21 17:02:56 +03:00
Capostrophic
b77d733c3e Fix freeze in getActorsSidingWith 2018-08-21 16:47:29 +03:00
AnyOldName3
25e92481f4 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-08-21 14:00:58 +01:00
David Cernat
03832f933b [Client] Send only individual items in PlayerInventory packets
For a long time, whenever a PlayerInventory packet was sent, it contained all the items in the player's inventory, because that's how Koncord originally implemented it and I always had too many other priorities to go back and rework it.

From now on, clients only send PlayerInventory packet with the one item added or removed, with the single exception being trading with merchants, where the entire inventory is still sent for the time being.
2018-08-21 10:10:06 +03:00
David Cernat
45b011452e [Client] Combine methods for sending spell packets into a single one 2018-08-21 01:20:30 +03:00
Capostrophic
74229490e4 Use the correct skill for creature AI weapon hit chance rating 2018-08-20 21:38:57 +03:00
David Cernat
140e0ed52c [Client] Also clear aiActors when clearing ActorList 2018-08-20 20:54:34 +03:00
David Cernat
aed4ca2fd2 [Client] Allow use of baseId for more record types
Additionally, don't allow new enchantment records to be created if they have no effects, to avoid a crash.
2018-08-20 15:24:20 +03:00
David Cernat
a083439139 Merge pull request #469 from davidcernat/master while resolving conflicts
# Conflicts:
#	apps/openmw/main.cpp
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwdialogue/dialoguemanagerimp.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwscript/dialogueextensions.cpp
#	apps/openmw/mwworld/worldimp.hpp
2018-08-20 14:08:44 +03:00
David Cernat
7efee0e968 [Client] Fix GCC build 2018-08-20 10:15:30 +03:00
Bret Curtis
3c827da702
Merge branch 'master' into combat_anims 2018-08-19 10:03:39 +02:00
Bret Curtis
3b2781bf89
Merge pull request #1720 from akortunov/playvfx
Rework spell VFX management
2018-08-19 10:00:38 +02:00
Marc Zinnschlag
20c53594de Merged merge request !36 2018-08-18 12:06:35 +02:00
James Carty
4489838ea3 Fix incorrect function call 2018-08-17 22:35:04 +01:00
James Carty
513e99148e Fix function with no return value 2018-08-17 20:18:20 +01:00
AnyOldName3
80082308f0 Merge upstream (shadermanager log system revamp) 2018-08-17 18:22:13 +01:00
Andrei Kortunov
d7ca087f59 AiCast: fix aiming 2018-08-17 12:41:13 +04:00
Andrei Kortunov
31f8bea1dd Rework spell effects management 2018-08-17 12:41:13 +04:00
Andrei Kortunov
8516aee6e0 Implement getHalfExtents() for non-actor objects 2018-08-17 12:40:01 +04:00
Marc Zinnschlag
088463ebe6 Merged pull request #1868 2018-08-17 09:37:49 +02:00
Marc Zinnschlag
ebdb991225 Merged pull request #1875 2018-08-17 09:37:12 +02:00
Marc Zinnschlag
3489951410 Merged pull request #1866 2018-08-17 09:36:44 +02:00
Capostrophic
ce78a34010
Use container ID in Equip command warning 2018-08-17 03:32:33 +03:00
Capostrophic
372697489b Fix Equip command infinite loop (bug #3072) 2018-08-17 02:52:18 +03:00
James Carty
43f1c9163c Fix issue in which murder wouldn't be reported after paying fine 2018-08-16 18:58:51 +01:00
Andrei Kortunov
16edac8c47 Fix incorrect 'preparing' word spelling 2018-08-16 17:47:06 +04:00
Andrei Kortunov
a73d42e711 Do not stop idle animation in spellcasting stance 2018-08-16 16:56:42 +04:00
Andrei Kortunov
b7a448cf42 Update idle animations after reset of mIdleState (bug #4531) 2018-08-16 16:56:42 +04:00
Andrei Kortunov
3a6c480d41 Do not reset idle animations when turning 2018-08-16 16:56:42 +04:00
Andrei Kortunov
15fa47827b AiCombat: Avoid jittering when aiming in melee 2018-08-16 16:56:42 +04:00
Andrei Kortunov
e444b9581c Do not play min attack -> max attack animation when attack strength is 0 (bug #4591) 2018-08-16 16:56:39 +04:00
Andrei Kortunov
8a48258b1b Fix attack after shoot 2018-08-16 15:51:11 +04:00
Bret Curtis
dcd381049c
Merge pull request #1872 from akortunov/extended_logging
Use new logging system
2018-08-16 11:38:29 +02:00
David Cernat
5bd2244898 [Client] Uninitialize DedicatedActors instantly in some situations
When LocalActors briefly become DedicatedActors as the result of a server script, the DedicatedActors are immediately uninitialized to avoid bugs like them jumping in place or rotating slightly.

Additionally, the playing of animations and sounds received in packets for DedicatedActors is no longer done during their next update, but is instead done instantly when the packets are received.
2018-08-16 03:50:41 +03:00
James Carty
4b0a6074e7 Add comment 2018-08-16 00:29:14 +01:00
James Carty
6889432030 Move code to seperate functions for reusability 2018-08-16 00:26:02 +01:00
Andrei Kortunov
5a4d0cec3a Use new logging system for game itself 2018-08-14 23:05:43 +04:00
Yohaulticetl
7e9ce99062 Made the werewolf check optional 2018-08-14 19:56:40 +02:00
Yohaulticetl
18e51e0e98 Added check for werewolves 2018-08-14 19:44:03 +02:00
Yohaulticetl
d19cbdb652 Factored strength into hand-to-hand combat 2018-08-14 19:44:03 +02:00
Capostrophic
22162dcbda
Replace std::find with std::set::find where applicable 2018-08-14 18:14:43 +03:00
Capostrophic
53599290c3 Make search for followers in getEnemiesNearby recursive 2018-08-14 16:14:48 +03:00
Capostrophic
75bd6e1d28 Make search for allies in actorAttacked recursive 2018-08-14 15:41:34 +03:00
Capostrophic
7029ed0e8d Refactor follower and enemy actor processing
Make another exception for wander packages when finding allies (bug #4304)
2018-08-14 15:36:52 +03:00
Bret Curtis
d25147a930
Merge pull request #1863 from Capostrophic/aiming
Use the correct spell projectile speed GMST in AI aiming (bug #3948)
2018-08-14 10:29:22 +02:00
Bret Curtis
6a32a4aed0
Merge pull request #1810 from akortunov/weaponfix
Use fallbacks for missing weapon animations
2018-08-14 10:29:01 +02:00
Bret Curtis
f7715db25f
Merge pull request #1871 from akortunov/extended_logging
[Regression] Move cerr initialization out of 'try' block
2018-08-14 10:26:12 +02:00
Andrei Kortunov
9a5b016293 Move crashcatcher initialization to components 2018-08-14 11:17:05 +04:00
David Cernat
5fd4113978 [General] Implement sending of ActorSpeech packets from server scripts 2018-08-13 20:39:03 +03:00
Allofich
fd89fa415a Do modifiers for dynamic stats before attributes
(Fixes #4231)
2018-08-13 21:59:27 +09:00
Allofich
2cc1b52baf Drain and fortify fixes for dynamicStats
(Fixes #3049)
2018-08-13 21:59:26 +09:00
Bret Curtis
61b34124e2
Merge pull request #1847 from akortunov/extended_logging
Improve console logging
2018-08-13 10:19:25 +02:00
Andrei Kortunov
4003fa1296 Keep jailing state for one frame after leaving jail (bug #3788) 2018-08-13 11:10:01 +04:00
Andrei Kortunov
9dfd775bf2 Implement GetPCTraveling console command 2018-08-13 08:30:50 +04:00
Andrei Kortunov
8de3383612 Add zero-duration spells effects to effect list (bug #3533) 2018-08-12 17:25:35 +04:00
Andrei Kortunov
307e0103dc Use fallbacks for missing weapon animations (bug #4470) 2018-08-12 16:14:24 +04:00
Andrei Kortunov
7d6e3673e0 Implement advanced logging system (feature #4581) 2018-08-12 13:38:15 +04:00
David Cernat
338efdb705 [General] Fix issues with MechanicsHelper::getItemPtrFromStore() 2018-08-11 19:00:02 +03:00
David Cernat
9598212aad [Client] Don't add bound items to inventory as a result of item packets
Additionally, don't include bound items when sending PlayerInventory packets.
2018-08-11 16:05:37 +03:00
David Cernat
a3b9274365 [Client] Make it possible to check if an item ID belongs to a bound item 2018-08-11 16:02:09 +03:00
David Cernat
a1933e7bc2 [Client] Don't declare variable twice in LocalPlayer's setEquipment()
The variable equipmentItem is identical to currentItem, so it should not have been added in commit 58a6a8c3bc

Addditionally, use a more descriptive variable name than "a" for item Ptrs.
2018-08-11 15:28:03 +03:00
Capostrophic
3527f3800e Use the correct spell projectile speed GMST in AI aiming 2018-08-10 21:21:21 +03:00
Marc Zinnschlag
1cfc1f9bdb Merged pull request #1666 2018-08-10 12:23:17 +02:00
Marc Zinnschlag
0aedb3aada Merged puil request #1808 2018-08-10 12:22:13 +02:00
Marc Zinnschlag
24212d58e8 Merged pull request #1861 2018-08-10 12:21:05 +02:00
Andrei Kortunov
cde95979d0 Fix combat engagement for creatures 2018-08-10 09:29:01 +04:00
David Cernat
5d66a9bb66 [Client] Fix path to MechanicsHelper in ProcessorPlayerItemUse 2018-08-09 22:33:22 +03:00
David Cernat
8df08c7d10 [General] Implement PlayerItemUse packet
Players can no longer unilaterally use items on themselves in their inventory. When they try to use an item, they send a PlayerItemUse packet to the server with the item's details. A serverside script can then check the item and either send the packet back to make the item use go through or drop it.
2018-08-09 18:25:20 +03:00
Andrei Kortunov
780648b584 Do not reset idle animations if we do not have ammo 2018-08-09 16:39:46 +04:00
Andrei Kortunov
df577babe9 Increase priority of 1st-person weapon animations to avoid issues with animation blending 2018-08-09 16:39:20 +04:00
Andrei Kortunov
71bcc11ba5 Apply only crossbow reload animation to upper body 2018-08-09 16:37:08 +04:00
Andrei Kortunov
a0d0e5d2db Give jumping animations higher priority than movement ones 2018-08-09 16:19:03 +04:00
Andrei Kortunov
6a03aa6fdb Reduce jittering during turning animations for player 2018-08-09 16:19:00 +04:00
Andrei Kortunov
cd92014533 Do not touch GUI modes when taking screenshots (bug #4528) 2018-08-09 16:19:00 +04:00
Marc Zinnschlag
fe19d8ff35 Merged pull request #1857 2018-08-09 13:52:51 +02:00
Marc Zinnschlag
a2a57cf694 Merged pull request #1858 2018-08-09 13:51:31 +02:00
Marc Zinnschlag
0f510011b3 Merged pull request #1852 2018-08-09 13:49:50 +02:00
Andrei Kortunov
126b2fdd42 Use the isPlayer variable to do not check if the current actor is player every time 2018-08-09 11:16:19 +04:00
AnyOldName3
1e48114492 Use JDGBOLT's indoor 'sun' direction. 2018-08-08 23:30:33 +01:00
AnyOldName3
a2b54714d4 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-08-08 23:28:06 +01:00
AnyOldName3
586ac2d12d Revert "Prevent accidental culling of first person meshes"
This reverts commit c38bf6757a.
2018-08-08 22:53:56 +01:00
Andrei Kortunov
51af729305 Do not use headtracking in the 1st-person view (bug #4573) 2018-08-08 23:29:03 +04:00
Andrei Kortunov
6202b4eca9 Do not touch GUI modes when taking screenshots (bug #4528) 2018-08-08 22:10:53 +04:00
Capostrophic
e9e9c0dd6b Fix guild guide fast travelling to exteriors time 2018-08-08 12:46:36 +03:00
Andrei Kortunov
b7859b3fa9 Cap underwater view distance (bug #4565) 2018-08-08 13:22:40 +04:00
Capostrophic
bcd9cc4baa Check the actor cell instead of the destination cell in fast travel price logic 2018-08-08 02:07:48 +03:00
Marc Zinnschlag
b75b5d139a Merged pull request #1845 2018-08-05 12:28:38 +02:00
Capostrophic
7087bad580 Use special behavior for all topics with reserved names (bug #4557) 2018-08-05 12:39:53 +03:00
David Cernat
888e1dfff8 [General] Allow setting of AI fight & dynamic stats in record packets
Additionally, allow the setting of the Autocalc flag for an NPC record based on an existing record.
2018-08-05 11:00:25 +03:00
Andrei Kortunov
b0f2e00e7f Make forcegreeting a non-op for non-actor objects (bug #4553) 2018-08-05 09:31:45 +04:00
Marc Zinnschlag
452a706047 Merged pull request #1837 2018-08-04 10:26:44 +02:00
Marc Zinnschlag
b6a919a2d1 Merged pull request #1838 2018-08-04 10:26:18 +02:00
Marc Zinnschlag
99c03d55f0 Merged pull request #1841 2018-08-04 10:25:52 +02:00
Marc Zinnschlag
2a621fedd1 Merged pull request #1842 2018-08-04 10:08:11 +02:00
Capostrophic
d15dcaff68
Don't adjust weapon rating according to weapon condition twice 2018-08-03 19:22:58 +03:00
Andrei Kortunov
e2519226aa Move boost include 2018-08-03 17:04:07 +04:00
Andrei Kortunov
eeffe2e557 Check if item model exists inside drag and drop functions 2018-08-03 16:42:43 +04:00
Andrei Kortunov
c2a175c2e0 Move crash catcher wrapper to separate file 2018-08-03 15:51:17 +04:00
Capostrophic
725a9323c4
Merge branch 'master' into sound 2018-08-03 14:16:51 +03:00
Capostrophic
4c7f3cf626
Merge branch 'master' into weaponpriority 2018-08-03 14:07:11 +03:00
Marc Zinnschlag
4d280add81 Merged pull request #1843 2018-08-03 12:56:17 +02:00
Marc Zinnschlag
d7718aae9b Merged pull request #1840 2018-08-03 12:54:56 +02:00
Marc Zinnschlag
eb5f558f6f Merged pull request #1839 2018-08-03 12:53:55 +02:00
Andrei Kortunov
712c9995db Rename mIsScripted variable because its name is ambiguous 2018-08-03 12:01:31 +04:00
Andrei Kortunov
c454f1bdad Use log file for editor (feature #4012) 2018-08-03 09:05:08 +04:00
AnyOldName3
8f4125134f Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-08-02 15:51:06 +01:00
AnyOldName3
c38bf6757a Prevent accidental culling of first person meshes 2018-08-02 15:50:43 +01:00
Capostrophic
9d85b7c2d3
Use the actual damage for deducting weapon rating 2018-08-02 15:20:07 +03:00
Capostrophic
73d5496711
Revert addition change 2018-08-02 13:01:23 +03:00
Capostrophic
16af1a6c1c Replace 0 sound range values separately 2018-08-02 12:40:53 +03:00
Capostrophic
3ac030d75a
Handle explicit calls before handling quotes 2018-08-02 09:49:53 +03:00
Capostrophic
80f3bd9f86 Don't apply iWereWolfFleeMod to creatures 2018-08-02 08:36:15 +03:00
Capostrophic
fa6c205e5d Make tab autocompletion work with explicit reference calls 2018-08-02 03:24:31 +03:00
Capostrophic
bec47dfb7c Make ranged weapon bonus a distance-dependent multiplier 2018-08-01 19:57:05 +03:00
Capostrophic
382b68a081
Combat AI: take the actual hit chance in account when rating weapon 2018-08-01 19:27:19 +03:00
Andrei Kortunov
12144de8ed Initialize missing variables 2018-08-01 20:18:37 +04:00
Andrei Kortunov
c0bed0fde2 Handle case when index < 0 2018-08-01 20:17:59 +04:00
Andrei Kortunov
770d86f9bd Initialize cubeSize variable for 360 degrees screenshots correctly 2018-08-01 19:36:55 +04:00
Andrei Kortunov
a08048da4e Avoid dereference after null check 2018-08-01 19:30:30 +04:00
Capostrophic
ab29f9e13f Add permanent barter disposition change option (feature #3103) 2018-08-01 17:31:35 +03:00
Marc Zinnschlag
1c13256456 Merged pull request #1829 2018-08-01 16:17:37 +02:00
Marc Zinnschlag
0e75e3816a Merged pull request #1830 2018-08-01 16:16:30 +02:00
Marc Zinnschlag
0c507b74bc Merge pull request #1832 2018-08-01 16:13:59 +02:00
AnyOldName3
cc23a968d1 Merge upstream/master 2018-08-01 14:13:45 +01:00
Capostrophic
be2e7e9e09 Make casting caster-linked on-self effects no-op (bug #4378) 2018-08-01 02:41:57 +03:00
Andrei Kortunov
5b92910829 Limit difficulty scaling, as mentioned in docs 2018-07-31 21:14:16 +04:00
Andrei Kortunov
c07cc0dc40 Reset animation state after weapon unequipping 2018-07-30 22:24:25 +04:00
Andrei Kortunov
0f2c3ecb17 Rescale player avatar (bug #4539) 2018-07-30 17:41:43 +04:00
David Cernat
b57807407a [General] Implement RecordDynamic packet, part 1
Spell, potion, enchantment, creature, NPC, armor, book, clothing, miscellaneous and weapon record data can now be sent in a RecordDynamic packet. Additionally, the packets include data related to associated magical effects (for spells, potions and enchantments), data related to default inventory contents (for creatures and NPCs) and data related to body parts affected (for armor and clothing).

The server now has associated script functions for setting most of the details of the above, with the main exception being individual creature and NPC stats.

Records can either be created entirely from scratch or can use an existing record (set via the baseId variable) as a starting point for their values. In the latter case, only the values that are specifically set override the starting values. Creature and NPC records also have an inventoryBaseId that can be used on top of the baseId to base their inventories on another existing record.

The client's RecordHelper class has been heavily expanded to allow for the above mentioned functionality.

When players create spells, potions and enchantments as part of regular gameplay, they send RecordDynamic packets that provide the server with the complete details of the records that should be created. When they create enchantments, they also provide the server with armor, book, clothing and weapon records corresponding to the items they've enchanted.

This functionality added by this packet was originally supposed to be exclusive to the rewrite, but I've gone ahead and tried to provide it for the pre-rewrite in a way that can mostly be reused for the rewrite.
2018-07-30 10:56:26 +03:00
Capostrophic
c79f96d0d2 Implement ranged crits (feature #3703) 2018-07-29 19:42:44 +03:00
Andrei Kortunov
1d463d129d Finish AiTarget package, if destination is blocked by other actor 2018-07-29 19:41:31 +04:00
Andrei Kortunov
75835c8326 Prevent NPC from chosing farther pathgrid node 2018-07-29 18:18:05 +04:00
Marc Zinnschlag
9e6cba09a6 Merged pull request #1827 2018-07-29 12:52:51 +02:00
Marc Zinnschlag
78121c1774 Merged pull request #1823 2018-07-29 12:49:50 +02:00
Marc Zinnschlag
3ba9229f47 Merged pull request #1815 2018-07-29 12:48:20 +02:00
Capostrophic
9c8e284ead Fix quick key activation delay code (regression #4536) 2018-07-29 12:52:29 +03:00
Andrei Kortunov
6d5d0039ec Make sure we apply OT_Murder only once 2018-07-28 20:45:33 +04:00
Andrei Kortunov
bc82dbbd1b Do not try to find missing animated collision shape again and again 2018-07-28 16:49:00 +04:00
David Cernat
2332423527 [Client] Fix extra qualification error in CellRef when compiling w/ GCC 2018-07-27 21:56:45 +03:00
David Cernat
7136329a94 [Client] Add World::updatePtrsWithRefId() method
This makes it possible to "reload" the Ptrs in active cells when changes happen to the ESM record that they are based on. In practice, the old Ptrs are deleted, their RefNums and MpNums are blanked out, and new Ptrs are created that use the same RefNum and MpNum as before.

The above has required me to also add a method called setRefNum() to CellRef to allow setting a RefNum on the fly.

There may be a more elegant implementation available for updatePtrsWithRefIds(), but it requires additional research.
2018-07-27 21:42:08 +03:00
Marc Zinnschlag
b7c159e5b6 Merged pull request #1816 2018-07-27 12:09:10 +02:00
Marc Zinnschlag
c508938674 Merged pull request #1817 2018-07-27 12:06:51 +02:00
Marc Zinnschlag
bbb22643e8 Merge remote-tracking branch 'capostrophic/warning' 2018-07-27 12:05:26 +02:00
David Cernat
9497c7f6f2 [Client] Add back mistakenly removed setting of mpNums for spawns 2018-07-27 00:36:05 +03:00
David Cernat
25fcd09780 [Client] Add doesNpcExist() method to RecordHelper 2018-07-26 23:57:42 +03:00
David Cernat
7995466e3c [Client] Check validity of refIds in ObjectSpawn packets
This reverts c7bcf70c32 because it provides a better solution to the problem solved there, while solving another related problem as well.
2018-07-26 23:57:22 +03:00
David Cernat
8d286657d4 [Client] Update messages when unilaterally creating custom objects 2018-07-26 23:32:31 +03:00
Capostrophic
f7887ab05f
Fix MSVC C4456 warning: declaration of 'stats' hides previous local declaration 2018-07-26 23:24:26 +03:00
David Cernat
c7bcf70c32 [Client] Ignore ObjectSpawn packets trying to spawn non-actors 2018-07-26 22:41:04 +03:00
David Cernat
d93b67ef21 [General] Sync soul refIds for items and add related script functions 2018-07-26 22:37:04 +03:00
David Cernat
f52364e05c [Client] Always create new references for new creature disguises
Previously, attempts to reuse the same reference for multiple creature disguises led to movement animation issues, as well as a dynamic_cast error in Creature::getInventoryStore() that made a DedicatedPlayer vanish completely when they first lost their creature disguise, then disguised themselves as a creature that could not hold weapons and then disguised themselves as a creature that could hold weapons.
2018-07-26 21:08:12 +03:00
David Cernat
60bc7447d9 [Client] Rework RecordHelper and add methods for other record types
The usage of const_cast has been replaced with usage of MWWorld::getModifiableStore() and ESMStore::overrideRecord()

Methods whose names started with "update" now start with "override", for consistency with ESMStore's overrideRecord()

New methods have been added for "overriding" enchantment, potion and spell records, which actually leads to them being created with their already set refIds if they haven't been created yet, as per the description of ESMStore::overrideRecord(): "Insert a record with set ID, and allow it to override a pre-existing static record."

Usage of RecordHelper methods has been updated in DedicatedPlayer.
2018-07-26 21:01:59 +03:00
Capostrophic
51d369d4da Add resumeGame method 2018-07-26 20:35:34 +03:00
David Cernat
4e78642273 [Client] Add getModifiableStore() to MWWorld 2018-07-26 20:05:36 +03:00
David Cernat
b4802e4201 [General] Use Time struct for time in BaseWorldstate 2018-07-26 19:01:27 +03:00
Andrei Kortunov
23d917df9c Do not use magic numbers in capacity calculations 2018-07-26 18:06:36 +04:00
David Cernat
a4b588d1b5 [General] Add optional timestamps to journal entries in PlayerJournal 2018-07-26 04:36:12 +03:00
Capostrophic
cac2bc768e
Fix NPC "can't teach more" message (bug #4494) 2018-07-25 12:34:33 +03:00
David Cernat
8fbed1f808 [General] Remove custom data from PlayerSpellbook packet
It has never made sense to have custom spell data in PlayerSpellbook packets, so it has been removed.
2018-07-24 20:58:55 +03:00
David Cernat
74fa1d0f01 [Client] Fix manual setting of inertial force
Actors who are on the ground have their inertial force ignored, so they are now made to not be regarded as being on the ground in World::setInertialForce()
2018-07-23 23:04:41 +03:00
David Cernat
b69e6b96e6 [Client] Use verbose logging level for LocalActor debug 2018-07-23 22:11:59 +03:00
David Cernat
36ac2d9de4 [Client] Set packetOrigin for all ObjectList packets sent 2018-07-23 01:39:43 +03:00
David Cernat
692ee01340 [Client] Add ScriptController w/ contextType-to-packetOrigin method 2018-07-23 00:48:23 +03:00
David Cernat
63a86f145d [Client] Record type of each InterpreterContext for later checking 2018-07-23 00:46:07 +03:00
David Cernat
b891acd46e [Client] Send Container packets when items are added/removed via scripts
Additionally, disable unilateral addition and removal of items on clients, and expect the server to reply back with an approved addition or removal.
2018-07-22 17:04:17 +03:00
David Cernat
2189ea1a63 [Client] Clean up sending of Container packets 2018-07-22 16:43:27 +03:00
David Cernat
8c0b75d9f4 [Client] Limit PlayerEquipment packets sent by recharging enchantments 2018-07-22 15:30:40 +03:00
David Cernat
18f8725d33 [Client] Remove tab character that somehow made its way into a comment 2018-07-22 10:29:14 +03:00
David Cernat
038757b91a [General] Temporarily revert to original rotation animation sync
I originally added rotation animation sync as part of commit 068a45be87. Unfortunately, it meant the PlayerPosition packets were now twice as large as they had been before, which was less than ideal for such a frequently sent packet, which is why Koncord switched to a more optimized approach in commits 5f30dfd5db and d67db1a9bd.

Recently, there have since been some rotation animation problems in OpenMW, which have broken the way Koncord's approach looks. My original approach still looks somewhat okay, so I'm switching back to it until we can figure out how to reuse it under the current circumstances.
2018-07-21 19:27:36 +03:00
David Cernat
3944c8aec6 [Client] Ignore WorldRegionAuthority packets that have an empty region 2018-07-21 18:28:31 +03:00
David Cernat
99e64bdcd7 [Client] Remove unused localWeather variable from Worldstate 2018-07-21 16:25:49 +03:00
David Cernat
cd1fc590a7 [Client] Differentiate itemPtr from actor Ptr in DedicatedPlayer method
This fixes a mistake from 8f7da49152
2018-07-21 16:14:07 +03:00
David Cernat
5466092582 [Client] Reduce log level for actor cell changes 2018-07-21 14:41:48 +03:00
David Cernat
20e0100706 [General] Rework Attack packets and add synchronization for item magic 2018-07-21 14:41:27 +03:00
David Cernat
0f0e8b7c08 [Client] Adjust log levels used for weather and global map 2018-07-21 12:08:31 +03:00
David Cernat
f1315ef30d [Cllient] Differentiate itemPtr from actor Ptr in DedicatedActor methods
2427a4f877 mistakenly used the variable name "ptr" for both the actor and the items in that actor's inventory.
2018-07-21 10:16:51 +03:00
David Cernat
b6324e3532 [Client] Clean up debug for spell usage 2018-07-21 09:41:36 +03:00
David Cernat
21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
2018-07-21 05:59:57 +03:00
David Cernat
421d0e7a99 [Client] Make forceWeather false by default for client-sent weather 2018-07-21 05:21:26 +03:00
David Cernat
892d71ce71 [General] Reimplement weather synchronization to allow soft transitions
Although weather sync was added by Koncord to the rewrite in fd721143e2 in a way that used surprisingly few lines of code, it relied on the server requesting weather states every second from authority players and sending them to non-authority players, while also allowing only very sudden weather transitions across regions, i.e. if there was one player in the Ascadian Isles who had stormy weather, and another player with clear weather in the Bitter Coast Region walked across to the Ascadian Isles, that player was instantly made to have stormy weather with no kind of transition at all.

My approach solves both of those problems. It solves the packet spam by only sending weather updates to the server when weather changes happen or when there are new arrivals to a weather authority's region, and it allows for both sudden weather transitions when players teleport to a region and for soft, gradual transitions when players walk across to a region. It is inspired by my previous actor sync, and uses a WorldRegionAuthority packet to set players as region authorities in a similar way to how ActorAuthority sets players as cell AI authorities. Weather changes are created only by the region authority for a given region, and weather packets are also only sent by that authority.

However, it should be noted that gradual weather transitions are used by default in this implementation. To use sudden weather transitions, the serverside Lua scripts need to forward WorldWeather packets with the forceWeather boolean set to true. That is, however, already handled by our default Lua scripts in situations where it makes sense.
2018-07-21 05:20:26 +03:00
Andrei Kortunov
8281fd903f Set movement speed to 0 when unconscious (bug #4519) 2018-07-19 20:17:32 +04:00
David Cernat
b6db570d9c [Client] Display uniqueIndexes in a less confusing way in console 2018-07-19 11:57:06 +03:00
Marc Zinnschlag
78a2725169 Merged pull request #1806 2018-07-17 12:42:41 +02:00
Marc Zinnschlag
326a3e61f4 Merged pull request #1807 2018-07-17 12:42:12 +02:00
Andrei Kortunov
38fa4e0a8a Do not play un-equipping animation when we switch to hand-to-hand 2018-07-17 14:10:04 +04:00
David Cernat
9823a77bf2 [General] Turn PlayerRegionAuthority into WorldRegionAuthority
WorldRegionAuthority is a Worldstate packet.
2018-07-17 09:21:13 +03:00
Andrei Kortunov
edd5769022 Show magic items count in spells window (feature #4509) 2018-07-16 14:11:03 +04:00
Andrei Kortunov
30716344f2 Fix possible division by zero in the fatigue calculation (bug #4510) 2018-07-16 13:24:12 +04:00
David Cernat
d5d3c0937f [Client] Adjust log level for actor transfers in CellStore 2018-07-16 03:53:09 +03:00
David Cernat
35fdb833df [Client] Verify integrity of credits file 2018-07-16 03:25:01 +03:00
David Cernat
0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 2018-07-16 02:20:43 +03:00
David Cernat
3649cf553f [General] Rename PlayerKillCount into WorldKillCount
This should clarify the real meaning of the packet and its associated event.

The event itself has been renamed from OnPlayerKillCount to OnWorldKillCount.
2018-07-15 05:34:59 +03:00
David Cernat
18a2d238ab [Client] Don't pop up dialogue screen when an NPC activates another NPC 2018-07-15 04:36:42 +03:00
David Cernat
4ef2aff11e [Client] Remove "Not implemented" message when activating other player
Serverside scripts can now make lots of different things happen as the result of such activation, which is why the message was no longer current.
2018-07-15 04:16:40 +03:00
David Cernat
f13705e8be [Client] Improve debug for ObjectActivate and ConsoleCommand 2018-07-15 04:09:19 +03:00
David Cernat
6ebe09375f [General] Implement ObjectActivate packet & associated script functions 2018-07-15 03:16:04 +03:00
David Cernat
81b160cae8 [General] Add placeholder for ObjectActivate packet 2018-07-15 01:08:31 +03:00
David Cernat
61da0d2475 [General] Turn PlayerInteraction into PlayerInput 2018-07-15 00:36:07 +03:00
David Cernat
32b6134fad [General] Add placeholder for CellReplace packet 2018-07-15 00:17:13 +03:00
David Cernat
a471f5e452 [General] Turn CellCreate into a Worldstate packet 2018-07-14 23:51:49 +03:00
David Cernat
6cb5ac6e63 Merge pull request #457 from OpenMW/master while resolving conflicts
Conflicts:
	CMakeLists.txt
	apps/openmw/engine.cpp
	apps/openmw/main.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwmechanics/character.cpp
	components/CMakeLists.txt
2018-07-14 03:57:05 +03:00
David Cernat
6d43c8d63d [Client] Send ActorAI with combat when an NPC's fight is set to 100 2018-07-14 02:55:38 +03:00
David Cernat
743933134d [Client] Simplify sending of ActorAI packets for uninitialized actors 2018-07-14 01:00:27 +03:00
David Cernat
5f4ec1331f [Client] Send ActorAI packet when combat is started via a client script 2018-07-14 00:07:15 +03:00
David Cernat
cc9e294cc0 [Client] Send ActorAI packet for new cell after being followed to it 2018-07-13 22:34:36 +03:00
David Cernat
528bd26a3b [General] Allow followers to follow non-authority players through cells 2018-07-13 21:27:29 +03:00
David Cernat
6c1173d598 [Client] Rename searchPtrViaRefIndex into searchPtrViaUniqueIndex 2018-07-13 04:33:54 +03:00
David Cernat
09da24f1ea [General] Rename all instances of refNumIndex into refNum
This creates symmetry with mpNum and should cause less confusion in the future.
2018-07-13 04:12:03 +03:00
David Cernat
f0d4f1bbe5 [Client] Send ActorAI packets when followed by an NPC
The packet is sent regardless of whether we are the cell authority or not, so the server can decide what it wants to do with it.
2018-07-12 23:08:17 +03:00
David Cernat
6316f1e590 [Client] Add ActorList methods for sending ActorAI packets
Additionally, use consistent capitalization for AI-related methods.
2018-07-12 20:48:47 +03:00
David Cernat
0fd8f7660b [Client] Replace LocalActor arg with BaseActor in ActorList functions 2018-07-12 20:15:04 +03:00
Andrei Kortunov
3d1daaebab Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
David Cernat
bdf2f03c4f [General] Remove unnecessary MapChanges struct from BaseWorldstate 2018-07-12 05:06:31 +03:00
David Cernat
59a56ca35e [Client] Disallow clients from scaling their associated players
Additionally, display messages when trying to scale players.
2018-07-12 03:29:38 +03:00
David Cernat
8ca29dbaac [Client] Fix remaining mistakes in debug for received ActorAI packets 2018-07-11 23:11:37 +03:00
David Cernat
25f7a55495 [Client] Improve debug for received ActorAI packets 2018-07-11 19:54:56 +03:00
Bret Curtis
99e4d49e7c
Merge pull request #1787 from akortunov/profilierfont
Use the DejaVuLGCSansMono.ttf for profiler output
2018-07-11 16:00:34 +02:00
Andrei Kortunov
70b6d4983d Use the DejaVuLGCSansMono.ttf in profilier output 2018-07-11 14:41:49 +04:00
Marc Zinnschlag
ee759effce Merged pull request #1798 2018-07-11 10:06:30 +02:00
David Cernat
bff6e9e235 [General] Implement ActorAI packet, part 5
Allow repetition for AiWander package to be turned on and off.
2018-07-10 23:18:32 +03:00
Andrei Kortunov
c77c50e92b Make Equip console command to bypass most of restrictions (bug #4460) 2018-07-11 00:06:21 +04:00
Capostrophic
5cb9dc9d12 Use SpellTurnLeft/TurnRight animation groups 2018-07-10 22:19:56 +03:00
Bret Curtis
df1576fcf5
Merge branch 'master' into crossbowfix 2018-07-10 19:15:37 +02:00
Andrei Kortunov
1c35e20fcc Use 1h animations as fallback for crossbows 2018-07-10 17:02:51 +04:00
Andrei Kortunov
75dcbea365 Apply weapon reload animations only for upper body 2018-07-10 17:00:48 +04:00
David Cernat
2e31c212c0 [Client] Make any ActorAI packet override an actor's desire to fight 2018-07-10 11:33:07 +03:00
David Cernat
79ee976c95 [Client] Implement ACTIVATE action in DedicatedActor::setAI()
Additionally, clean up usage of CreatureStats in DedicatedActor.
2018-07-10 11:31:51 +03:00
David Cernat
0f30e21312 [Client] Add searchPtrViaRefIndex method to World to easily find objects 2018-07-10 11:30:32 +03:00
David Cernat
c984fc0881 [Client] Allow AiActivate to be used with specific Ptrs, not just refIds 2018-07-10 08:21:24 +03:00
David Cernat
00c13ae96c [General] Implement ActorAI packet, part 4
The server can now make actors activate players and objects, at least in theory. In practice, OpenMW''s AiActivate package needs to be worked so it allows specific objects as targets instead of just refIds.
2018-07-10 07:07:37 +03:00
David Cernat
0e13207afe [General] Implement ActorAI packet, part 3
The server can now cancel actor AI, make actors travel to a location, make actors wander, and make actors get escorted by a player or another actor.
2018-07-10 05:07:58 +03:00
David Cernat
5baef09f79 [General] Implement ActorAI packet, part 2
The server can now make actors start combat with players or other actors.
2018-07-10 02:47:52 +03:00
David Cernat
5628f3b977 [Client] Fix debug for DedicatedActor::setAI() 2018-07-10 02:05:10 +03:00
David Cernat
b86155dc11 [Client] Allow AiFollow package to have infinite distance when desired 2018-07-10 01:40:57 +03:00
David Cernat
864c66d1d4 [Client] Make sure hasAiTarget is set correctly for DedicatedActors 2018-07-10 01:35:38 +03:00
David Cernat
4d4bced929 [Client] Allow singleplayer-only saves in main menu during multiplayer 2018-07-09 22:53:18 +03:00
terrabyte25
48296a7452
Update trainingwindow.cpp 2018-07-09 23:13:52 +04:00
Alexander Stillich
725cc94210 Renamed cc_install to something less cryptic (crashCatcherInstall) 2018-07-09 16:25:55 +02:00
Doc West
467989cdd5 Moved crashcatcher to a component and also use it in CS
Reworked debugger detection (failed on gdb 7.11), it now uses /proc to detect the debugger
2018-07-09 16:25:55 +02:00
Capostrophic
d09c327b20 Update changelog 2018-07-09 12:36:19 +03:00
Capostrophic
14d3b213a1
Fix double call of addContainerScripts on player in moveObject (fixes #4490) 2018-07-08 23:08:57 +03:00
David Cernat
6ff7fa525e [Client] Disable autosaving when waiting 2018-07-08 23:04:30 +03:00
David Cernat
04ba324290 [Client] Disable clientside disabling and enabling of objects 2018-07-08 03:31:48 +03:00
David Cernat
5043fb4246 [Client] Disable clientside disarming of traps 2018-07-08 02:38:10 +03:00
David Cernat
acdaf1a282 [Client] Disable clientside deletion of objects through console/scripts
Unfortunately, disabling clientside deletion of summons and items that can be picked up requires extra work on actors and inventories respectively, to avoid buggy situations.
2018-07-08 00:39:07 +03:00
David Cernat
8d9fde810e [Client] Disable clientside scaling of objects 2018-07-08 00:28:31 +03:00
David Cernat
f3892d697b [Client] Disable clientside locking and unlocking of objects 2018-07-08 00:06:01 +03:00
David Cernat
3ed9d89280 [General] Use separate variables for video & music filenames in packets 2018-07-07 14:40:35 +03:00
David Cernat
509882b5f6 [Client] Rework MechanicsHelper::getTarget() to avoid crashes 2018-07-07 11:43:57 +03:00
David Cernat
e3e1cfc549 [Client] Add forgotten comparison in crimeTime and deathTime check 2018-07-06 20:49:08 +03:00
Capostrophic
bded697f07
Make Goodbye block using hyperlinks 2018-07-06 19:38:36 +03:00
David Cernat
4eb72eecb1 [Client] Fix crash for invalid CellRefs in MechanicsHelper::getTarget() 2018-07-06 18:39:14 +03:00
David Cernat
4b30a44816 [Client] Compare crimeTime and deathTime when NPCs forgive player crimes
Previously, all crime witnesses stopped being hostile to a respawning player for as long as the player's diedSinceArrestAttempt was true. That meant that, in an area with no guards to arrest the player, crime witnesses did not enage in combat with the player at all ever again until diedSinceArrestAttempt became false.

This commit makes it so the time of the last crime is recorded for each witness, and that is then compared with the time of the LocalPlayer's last death for a one-time crime forgiveness during that player's current life.

This is essentially a gameplay adjustment for "singleplayer with respawns," and will have to be reworked to make sense for every player in multiplayer, though that requires reworking the crime system as a whole and is thus on hold.
2018-07-06 14:17:54 +03:00
Marc Zinnschlag
d9de8ccb5b Merged pull request #1781 2018-07-06 11:55:45 +02:00
David Cernat
c23fc3446f [Client] Avoid sending map tiles for Wilderness cells 2018-07-06 03:54:34 +03:00
David Cernat
17c234d9ca [Client] Use initial values for LocalPlayer and LocalActor killers 2018-07-06 02:07:55 +03:00
David Cernat
97cd3effa7 [Client] Make actor debug consistent with object debug 2018-07-06 00:32:45 +03:00
Capostrophic
9abfabb065
Ensure forward-compatibility of death animations in old saves (fixes #4274) 2018-07-05 22:49:40 +03:00
David Cernat
c075496748 [General] Replace deathReason in death packets with a killer variable
Add serverside script functions for determining the killers of both players and actors.

Use unsigned ints for script functions returning an object or actor's refNumIndex or mpNum.

Remove updateDeadState() from LocalPlayer and make its code part of updateStatsDynamic() for simplicity.
2018-07-05 22:24:51 +03:00
David Cernat
f02492a593 [General] Temporarily include target names in mwmp::Target
These will be removed once the server can get the names matching refIds by reading content files.
2018-07-05 19:40:28 +03:00
David Cernat
691b332d03 [Client] Use MechanicsHelper::getTarget() for summoners in ObjectList 2018-07-05 16:38:03 +03:00
David Cernat
130a32ebb0 [Client] Add new methods for handling mwmp::Target in MechanicsHelper 2018-07-05 16:36:52 +03:00
Capostrophic
faf3e9ba5a Make spellcasting stance transition more smooth (fixes #4358)
If a movement animation was identical to the previous one that was played, restart it from the point the previous animation ended
2018-07-05 01:57:34 +03:00
David Cernat
76731f5def [Client] Don't remove SummonKeys with actorIds of -1
This prevents summon duplication caused by a SummonKey sometimes being deleted immediately after being created, before the server can send back an ObjectSpawn packet spawning a creature that can be attached to the SummonKey.
2018-07-05 01:11:45 +03:00
David Cernat
c2411982d2 [Client] Log object refNumIndexes and mpNums in a consistent way 2018-07-04 21:54:11 +03:00
David Cernat
7775780ad7 [Cllient] Update multiplayer code for handling quick keys 2018-07-04 05:56:10 +03:00
David Cernat
8a23a96da4 [Client] Update initialization of AiFollow packages in multiplayer code 2018-07-04 04:00:12 +03:00
David Cernat
a236ffc4be Merge pull request #456 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	README.md
#	apps/openmw/mwgui/quickkeysmenu.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwmechanics/combat.cpp
2018-07-04 01:52:29 +03:00
Koncord
fa2bf0663e [General] Simplify vectorContains 2018-07-03 18:41:03 +08:00
Koncord
53346e2663 [Client] Return 0 if effect not found 2018-07-03 03:43:38 +08:00
Koncord
c5c1a160b2 [Client] Comment out an unused variable 2018-07-03 03:35:48 +08:00
Koncord
895634cd16 [General] Change type of MpNum to "unsigned int" 2018-07-03 03:25:54 +08:00
Thunderforge
7cbc4eeb49 Adding missing override keywords
Prevents compiler warnings such as this:

```
/Users/Will/CLionProjects/OpenMW/apps/openmw/mwgui/windowbase.hpp:65:22: warning: 'onOpen' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void onOpen();
                     ^
/Users/Will/CLionProjects/OpenMW/apps/openmw/mwgui/windowbase.hpp:38:22: note: overridden virtual function is here
        virtual void onOpen() {}
                     ^
```
2018-07-01 19:17:50 -05:00
David Cernat
bef53749ed [General] Replace BaseObject's hasMaster variable with isSummon
Additionally, add a GetObjectSummonState() script function to the server.
2018-07-02 02:25:06 +03:00
David Cernat
8ce225b1cc [Client] Use the casters of damage-dealing spells as death reasons 2018-07-02 00:42:32 +03:00
Finbar Crago
5d9035c6b2 [Fixes #4482] Missing HandToHand on key quick key 0 (introduced in MR !11 for issue #4480)
because apparently i can't count to ten...
2018-07-01 13:46:23 +10:00
David Cernat
958b220835 [General] Send summon duration to server in ObjectSpawn packets 2018-07-01 00:43:29 +03:00
Marc Zinnschlag
2ea85d0bb6 Merge remote-tracking branch 'gl_finbar-crago/fix_quickkey_segfalt' 2018-06-30 10:17:05 +02:00
Finbar Crago
09c9bd34c3 cleanup more unnecessary struct keywords... 2018-06-30 12:43:50 +10:00
Capostrophic
6e9c08083d
Add missing empty attacker checks 2018-06-29 20:35:45 +03:00
Capostrophic
bccba24c40 Make unarmed creature attacks not affect armor condition (fixes #2455) 2018-06-29 20:18:28 +03:00
Finbar Crago
596be205c1 cleanup unnecessary struct keywords... 2018-06-29 23:43:51 +10:00
Finbar Crago
2722ca50fb fix QuickKeysMenu crash on reopening window after item drop + pickup [see: !11#note_85086570] 2018-06-29 23:32:05 +10:00
Finbar Crago
7ae388086b Merge branch 'master' into fix_quickkey_segfalt 2018-06-29 12:34:53 +10:00
Finbar Crago
ed71656ea6 fix updateActivatedQuickKey() crash
keyboard numbers don't start at zero...
2018-06-29 01:58:57 +10:00
Finbar Crago
24d5fb09da fix crash on simultaneous key presses 2018-06-28 22:55:02 +10:00
Bret Curtis
f07d50e5bf
Merge pull request #1785 from akortunov/warnfix
Fix some GCC warnings
2018-06-28 10:33:51 +02:00
Finbar Crago
d790a27060 Merge branch 'master' into fix_quickkey_segfalt 2018-06-28 18:16:00 +10:00
Andrei Kortunov
5455490ad2 Avoid fall-through in spell selection 2018-06-28 11:12:48 +04:00
Finbar Crago
80a3f0a0d4 switch mSelectedIndex/mActivatedIndex int to mSelected/mActivated keyData pointers 2018-06-28 17:02:25 +10:00
Finbar Crago
335e2c5897 add keyData struct + general cleanup 2018-06-28 13:27:08 +10:00
David Cernat
9102df7fde [General] Make WorldCollisionOverride also work with specific refIds
For now, this only makes it possible to enforce collision for specific refIds for placed objects.
2018-06-28 04:53:00 +03:00
David Cernat
b81ca18316 [Client] Don't clear container Ptrs when disposing of corpses
The reason for this is that only the server should be determine whether a corpse can be disposed of or not.
2018-06-28 01:45:15 +03:00
Nikolay Kasyanov
5fcb091127 Replace FIXME with a detailed explanation of the issue 2018-06-27 22:40:09 +02:00
Nikolay Kasyanov
9c78364c45 Revert "Merge pull request #1771 from Xenkhan/master"
This reverts commit 9667dd051c, reversing
changes made to f52e06fc19.
2018-06-27 22:19:09 +02:00
David Cernat
7ffdb18bf9 [General] Implement ActorDeath packet, part 1
ActorDeath packets are sent for dead actors before their StatsDynamic packets. They contain the actor's deathReason in a manner similar to that of PlayerDeath packets.

A future commit will replace the deathReason with a variable named killer which will be an mwmp::Target.
2018-06-27 21:47:55 +03:00
Andrei Kortunov
ec73011617 Clean temporary storage if we assign new AI package (bug #4464) 2018-06-27 12:52:43 +04:00
Andrei Kortunov
ee45f54b53 Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
Andrei Kortunov
3c7ab976c3 Ignore movement from scripted animations (bug #4475) 2018-06-27 08:22:45 +04:00
Finbar Crago
cac6d59140 Merge branch 'master' into fix_quickkey_segfalt 2018-06-27 12:58:43 +10:00
David Cernat
7060ff59c5 [Client] Enforce the default global map cell size in multiplayer 2018-06-27 01:23:48 +03:00
David Cernat
fec500c4b0 [Client] Reduce container debug spam by requiring VERBOSE logging for it 2018-06-26 23:40:19 +03:00
David Cernat
914b79fcc9 [General] Make it possible to check which placed objects have containers 2018-06-26 16:56:08 +03:00
Finbar Crago
43c9fd4cec check MWWorld::Ptr != NULL for MWGui ItemPtr tooltips 2018-06-26 13:41:53 +10:00
Finbar Crago
186ec8c50f rm ContainerStore/refItem 2018-06-26 13:35:04 +10:00
Marc Zinnschlag
705b2dca0e Merged pull request #1777 2018-06-25 11:58:12 +02:00
Marc Zinnschlag
baeaff2309 Merged pull request #1778 2018-06-25 11:57:45 +02:00
Andrei Kortunov
97d8cc0efe Check if the local was not found, just for sure 2018-06-25 11:21:00 +04:00
Andrei Kortunov
7dff8d8fe2 Check cell for null 2018-06-25 10:26:58 +04:00
Finbar Crago
46c6abcf54 add string vectors for name/id in QuickKeysMenu for item lookups 2018-06-25 16:02:28 +10:00
Andrei Kortunov
441463327c Validate map size 2018-06-25 09:57:40 +04:00
Andrei Kortunov
359e748c28 Initialize some missing fields in constructors 2018-06-25 09:35:42 +04:00
David Cernat
deda6ec071 [Client] Don't send WorldMap packets for already explored map tiles 2018-06-25 02:34:11 +03:00
Capostrophic
ecafcefae9
Fall back to regular head when getVampireHead fails 2018-06-24 14:39:48 +03:00
Capostrophic
35b0546737 Consider <p> tag when discarding post-EOL tag text (regression #4473) 2018-06-23 14:27:40 +03:00
Finbar Crago
da4c55d5ad prevent segfalt in QuickKeysMenu when item has been removed from player inventory
added a MWWorld::ContainerStore to hold item copies which are then used to find
real items with findReplacement().

(storing the RefId could be a better solution but would probably leave tooltips broken...)
2018-06-23 17:51:32 +10:00
AnyOldName3
f8e4f3fca5 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-06-22 00:11:29 +01:00
Bret Curtis
a55583a395
Merge branch 'master' into master 2018-06-21 22:22:01 +02:00
David Cernat
7e90d1f2a4 [Client] Fix interior-to-exterior and v.v. cell transitions for actors
Make sure only players who are cell authorities can get actors to teleport across cells for them, and display a message box for players who are not cell authorities.
2018-06-21 16:44:49 +03:00
Xenkhan
405a0caf29
Remove unneeded whitespace 2018-06-20 13:56:00 -05:00
Xenkhan
5a4817c147
Get rid of reinterpret_cast<> 2018-06-20 13:33:59 -05:00
Marc Zinnschlag
22eb037c18 Merged pull request #1773 2018-06-20 19:08:50 +02:00
Bret Curtis
6655b7e512
Merge pull request #1740 from nikolaykasyanov/software-cursor-decompression
Decompress cursors using SDL software renderer on Mac or if OSG >= 3.5.8 or if OPENMW_DECOMPRESS_TEXTURES is set
2018-06-20 17:19:48 +02:00
Bret Curtis
b619c0de2d
Merge pull request #1772 from akortunov/deathanim
Fast-forward death animation to end if death animation was finished earlier
2018-06-20 13:28:36 +02:00
Andrei Kortunov
c195144b17 Take transformation from first node with given name in file (bug #4469) 2018-06-20 14:24:32 +04:00
Bret Curtis
664edc5a39
Merge pull request #1757 from akortunov/musicfix
Handle exception when try to load non-music file
2018-06-20 11:18:50 +02:00
Andrei Kortunov
c9756cee4c Fast-forward death animation to end if death animation was finished earlier (regression #4468) 2018-06-20 12:37:58 +04:00
AnyOldName3
553094669b Merge upstream/master (& fix merge conflicts) 2018-06-20 00:11:23 +01:00
David Cernat
fd05beef94 [Client] Don't delete disposed of corpses on client
Clients should instead await a server reply approving the deletion.
2018-06-20 02:01:19 +03:00
Xenkhan
24ddb66af9
Retrieve SDL window settings instead of using magic numbers 2018-06-19 15:03:30 -05:00
Capostrophic
6c23caadd7 Fix crash when a target in a different cell is (un)locked 2018-06-19 20:43:18 +03:00
Capostrophic
0c4fa55f16 Make Open spells casted by anything trigger player crime event (fixes #4461) 2018-06-19 17:04:38 +03:00
Marc Zinnschlag
7cfb7063c2 Merged pull request #1767 2018-06-19 13:30:10 +02:00
Marc Zinnschlag
7be069fcd2 Merged pull request #1743 2018-06-19 13:29:20 +02:00
Andrei Kortunov
5fd3ec1035 Implement unlockable locks with 'lock 0' console command 2018-06-19 14:17:33 +04:00
Marc Zinnschlag
a8ad530db9 Merged pull request #1749 2018-06-19 11:33:08 +02:00
Marc Zinnschlag
2a52ade219 Merged pull request #1760 2018-06-19 11:26:41 +02:00
David Cernat
aa3639f2da
Merge pull request #450 from TES3MP/0.6.2
Add 0.6.2 commits up to 19 Jun 2018
2018-06-19 05:26:38 +03:00
David Cernat
5b461b09ca [Client] Display error when receiving ID_INCOMPATIBLE_PROTOCOL_VERSION 2018-06-19 05:24:26 +03:00
David Cernat
29be79e852 [General] Switch RakNet enums to CrabNet enums
CrabNet is TES3MP's fork of RakNet that has deviated too far from RakNet to still be compatible with it.
2018-06-19 00:37:52 +03:00
Capostrophic
8376c8c68e Allow partial matches in NotCell condition (fixes #4459) 2018-06-18 03:27:31 +03:00
Bret Curtis
e93104a6b3
Merge pull request #1758 from Capostrophic/screenshot
Remove screenshot taken message again
2018-06-17 22:26:00 +02:00
Bret Curtis
70dec71c00
Merge pull request #1763 from akortunov/activatedoor
Forbid actors to use teleporting doors
2018-06-17 10:13:16 +02:00
Bret Curtis
3cc6da1db2
Update door.cpp
typo fix
2018-06-17 10:13:03 +02:00
Bret Curtis
3f2dbdc8a8
Merge branch 'master' into wanderfix 2018-06-17 10:00:38 +02:00
Andrei Kortunov
f3f7487664 Fix arguments parsing for AiWander console command (bug #4458) 2018-06-16 22:11:10 +04:00
Andrei Kortunov
e08b0d3070 Ignore lights without CanCarry flags when NPC selects torch (bug #4457) 2018-06-16 17:34:49 +04:00
Andrei Kortunov
2a65aaf5ab Forbid actors to use teleporting doors (bug #2562) 2018-06-16 14:21:28 +04:00
Nikolay Kasyanov
359f87ab9f Change imageToSurface to return a unique_ptr to avoid manual surface cleanup 2018-06-16 12:12:32 +02:00
Andrei Kortunov
9c3da41130 Add murder bounty when a player follower commits murder (bug #2852) 2018-06-15 14:31:09 +04:00
Capostrophic
1abf749f03
Remove screenshot taken message 2018-06-14 22:08:53 +03:00
Andrei Kortunov
2854f6ca83 Handle exception if we try to play non-music file (bug #4416) 2018-06-14 21:32:40 +04:00
Miloslav Číž
477e1437d2 Resolve conflicts 2018-06-14 15:30:28 +02:00
Andrei Kortunov
49ba00a3ec Add NPC validation to esmstore (bug #2772) 2018-06-14 16:48:16 +04:00
Miloslav Číž
dd00e438fe Merge branch 'screenshot360' of https://github.com/drummyfish/openmw into screenshot360 2018-06-13 21:35:03 +02:00
Miloslav Číž
7178ee3a6e Add FIXME comment 2018-06-13 21:34:43 +02:00
Miloslav Číž
d629c30fdb
Merge branch 'master' into screenshot360 2018-06-13 21:16:28 +02:00
Marc Zinnschlag
2b35c5efd7 Merge remote-tracking branch 'upstream/master' 2018-06-13 18:13:15 +02:00
Marc Zinnschlag
aea481eacb Merged pull request #1753 2018-06-13 18:12:38 +02:00
Andrei Kortunov
61c968d550 Ignore broken items when search for replacement (bug #4453) 2018-06-13 18:39:02 +04:00
Andrei Kortunov
81b78a82e8 AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 2018-06-13 17:47:32 +04:00
Miloslav Číž
dcfbd554bb Remove try catch block 2018-06-13 11:12:46 +02:00
Bret Curtis
3e4dc31e39
Merge branch 'master' into fatigue 2018-06-13 10:04:32 +02:00
Marc Zinnschlag
1ba0317905 Merged pull request #1670 2018-06-13 09:02:31 +02:00
Marc Zinnschlag
48711bbdde Merged pull request #1592 2018-06-13 08:58:06 +02:00
Miloslav Číž
c3d7ee5a9e Resolve merge conflicts 2018-06-13 08:22:37 +02:00
Miloslav Číž
db8aaa74d6 Start cell border debug drawing 2018-06-13 01:48:31 +02:00
Andrei Kortunov
9c45cc7e48 Use player reference instead of pointer 2018-06-12 22:05:00 +04:00
Capostrophic
1c8a20a54a Set ok button focus in settings window by default (fixes #4368) 2018-06-12 19:45:43 +03:00
Andrei Kortunov
f299be8158 Play scripted animations even if SkipAnim is used 2018-06-12 16:07:36 +04:00
Andrei Kortunov
25bb7c1826 Make 'PlayGroup idle' to cancel scripted animations 2018-06-12 14:04:03 +04:00
Andrei Kortunov
0e441d48ac Give scripted animations highest priority (bug #4286) 2018-06-12 12:55:28 +04:00
Andrei Kortunov
0c92655250 Avoid code duplication in character manager 2018-06-12 11:51:54 +04:00
Andrei Kortunov
e3812f4075 Check creature stats only for actors 2018-06-12 11:27:18 +04:00
Andrei Kortunov
b0a140e714 Disable actor collision only after end of death animation 2018-06-12 10:00:38 +04:00
Andrei Kortunov
ebaa6fb5a2 Play death scream only once 2018-06-12 09:55:43 +04:00
Andrei Kortunov
427be928d0 Do not update animation state for dead actors 2018-06-11 23:17:54 +04:00
Andrei Kortunov
977a27ecb7 Do not clear corpses until end of death animation (bug #4307) 2018-06-11 22:29:32 +04:00
Bret Curtis
7310e3c8c2
Merge pull request #1748 from akortunov/bookfix
Do not show any book text after last <BR> tag
2018-06-11 17:08:26 +02:00
Andrei Kortunov
a42c663fd7 Do not interrupt scripted animations by death animation (bug #4286) 2018-06-11 18:53:25 +04:00
Andrei Kortunov
d0619cfb35 Play death animation for non-persisting actors with 0 health (bug #4291) 2018-06-11 18:52:20 +04:00
Andrei Kortunov
6099735c60 Early out only when scripted animation is playing 2018-06-11 17:52:58 +04:00
Andrei Kortunov
e234dd2a36 Do not interrupt scripted animations 2018-06-11 17:18:51 +04:00
Andrei Kortunov
66a46ff03c Do not show any book text after last <BR> tag. 2018-06-11 11:22:56 +04:00
Capostrophic
d43766d3c9 Make WakeUpPC interrupt waiting if it was supposed to be (fixes #3629) 2018-06-10 18:42:18 +03:00
Andrei Kortunov
acd3cba5fa Store previous items in the savegame 2018-06-10 16:21:19 +04:00
Andrei Kortunov
9fd2d57b86 Move previous items to player 2018-06-10 16:21:19 +04:00