1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-20 05:53:50 +00:00
Commit graph

12038 commits

Author SHA1 Message Date
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
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
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
Andrei Kortunov
f977c6876f Bound items: store item ID instead of pointer 2018-06-10 16:21:19 +04:00
Andrei Kortunov
4de9d9fa77 Split adjustBoundItem() 2018-06-10 16:21:19 +04:00
Andrei Kortunov
d1b1cb748d Reequip previous item only if the expired bound item was equipped 2018-06-10 16:21:19 +04:00
Andrei Kortunov
9b72a6ac69 Use the MWWorld::Ptr() instead of string ID 2018-06-10 16:21:19 +04:00
Andrei Kortunov
0375bedab2 Equip previous item after a bound item expires (bug #2326) 2018-06-10 16:21:19 +04:00
Andrei Kortunov
ae87e0d3fc Do not reset mUpperBodyState for weapon->weapon switch (regression #4446) 2018-06-09 15:34:08 +04:00
Andrei Kortunov
4ba361fea6 Unhardcode sunset and sunrise settings (bug #1990) 2018-06-09 13:09:17 +04:00
Marc Zinnschlag
7d9de93fd3 Merged pull request #1477 2018-06-09 10:52:35 +02:00
Marc Zinnschlag
551a69f1b1 Merged pull request #1559 2018-06-09 10:51:02 +02:00
Marc Zinnschlag
76972bb2f6 Merged pull request #1709 2018-06-09 10:46:02 +02:00
Andrei Kortunov
6ed2773299 Do not stack return packages 2018-06-08 21:53:47 +04:00
Andrei Kortunov
74a2cbe696 AI: return back after pursuit 2018-06-08 21:53:47 +04:00
Andrei Kortunov
3d0631cfcc Store last AI package in savegame 2018-06-08 21:53:47 +04:00
Andrei Kortunov
3a0ee78d2b AiTravel: store mHidden flag in savegame 2018-06-08 21:53:47 +04:00
Andrei Kortunov
2f5beb8853 Remove unnecessary hack 2018-06-08 21:53:47 +04:00
Andrei Kortunov
57d686131e Remove redundant condition 2018-06-08 21:53:47 +04:00
Andrei Kortunov
5105c67642 Add mHidden field to AiTravel 2018-06-08 21:53:47 +04:00
Andrei Kortunov
81f29d8dcd AiWander: resume moving to destination after combat 2018-06-08 21:53:47 +04:00
Andrei Kortunov
18ff097e4a Add the parameter to AiSequence::stack() to control ability to cancel other AI packages 2018-06-08 21:53:47 +04:00
Andrei Kortunov
9d27eb197f AiWander: return to initial position only after combat 2018-06-08 21:53:47 +04:00
Bret Curtis
61c969e970
Merge branch 'master' into hitboxfix 2018-06-08 18:36:44 +02:00
Capostrophic
b274931165
Revert erroneous changes 2018-06-08 19:18:53 +03:00
Capostrophic
dd2a11b243
Merge branch 'master' into goodbye 2018-06-08 19:16:36 +03:00
Capostrophic
24c1ee7744 Use relative stat difference for haggling 2018-06-08 19:00:45 +03:00
Capostrophic
b7026df551 Improve the offered price formula (Fixes #2222) 2018-06-08 19:00:45 +03:00
Andrei Kortunov
fed10e87aa Store integer actor ID in AI packages (bug #4036) 2018-06-08 19:57:41 +04:00
Marc Zinnschlag
9d0ce25052 Merged pull request #1738 2018-06-08 17:28:08 +02:00
Marc Zinnschlag
7899f44173 Merged pull request #1619 2018-06-08 17:07:38 +02:00
Andrei Kortunov
fea34bd73f Added support for per-group animation files 2018-06-08 17:04:15 +04:00
Capostrophic
11103211c5 Make Goodbye and Choice choices mutually exclusive 2018-06-08 15:03:19 +03:00
Marc Zinnschlag
21ea49fe83 Merge remote-tracking branch 'capostrophic/physics' 2018-06-08 11:43:10 +02:00
David Cernat
2a3c74bfcc Merge pull request #447 from OpenMW/master while resolving conflicts
# Conflicts:
#	README.md
2018-06-08 06:01:00 +03:00
Capostrophic
1a354f88ac Make choices trigger goodbye if Goodbye is used (fixes #3897) 2018-06-07 22:09:55 +03:00
Andrei Kortunov
1b9edbe119 Add unequip animation during stance switching (bug #4327) 2018-06-07 16:20:17 +04:00
Andrei Kortunov
bde1d07d4e Use hitboxes and focused object for touch spells (bug #3374) 2018-06-07 16:12:27 +04:00
Andrei Kortunov
4666a6a0ab Use default hit formula as fallback 2018-06-07 16:12:27 +04:00
Andrei Kortunov
9e5d577a71 Aim from center of attacker to center of target 2018-06-07 16:12:27 +04:00
Andrei Kortunov
f5dc9f0162 Use hitbox cone only as fallback 2018-06-07 16:12:27 +04:00
Andrei Kortunov
ab433102a4 Increase hit distance for player by halfExtents 2018-06-07 16:12:27 +04:00
Marc Zinnschlag
7b4a69ff2f Merged pull request #1728 2018-06-07 13:14:53 +02:00
Marc Zinnschlag
362aa23546 Merged pull request #1724 2018-06-07 13:13:48 +02:00
Marc Zinnschlag
2ab31b0c18 Merged pull request #1723 2018-06-07 13:05:20 +02:00
David Cernat
2942bf6455
Merge pull request #445 from OpenMW/master
Add OpenMW commits up to 6 Jun 2018
2018-06-07 13:41:04 +03:00
David Cernat
72862dc255 [General] Turn PlayerMap into WorldMap, now a Worldstate packet 2018-06-07 12:51:45 +03:00
David Cernat
a28b27f5d9 Merge pull request #443 from OpenMW/master while resolving conflicts
# Conflicts:
#	README.md
2018-06-05 20:57:50 +03:00
David Cernat
0d0c4ac235 [Client] Use REPLY_TO_REQUEST container sub-action for partial requests 2018-06-05 19:40:39 +03:00
David Cernat
04a2025340 Fix crash when adding items to certain disabled creatures (bug #4441) 2018-06-05 18:09:10 +03:00
David Cernat
83014d6381 [Client] Set actors as the owners of their items when editing containers 2018-06-05 14:55:57 +03:00
David Cernat
494edbe5cb [General] Add REPLY_TO_REQUEST container sub-action 2018-06-05 14:16:27 +03:00
David Cernat
8ea9485e6b [Client] Make container debug information more useful 2018-06-05 12:01:16 +03:00
David Cernat
c20a0c72c5 Merge pull request #442 from OpenMW/master while resolving conflicts
# Conflicts:
#	CMakeLists.txt
2018-06-04 19:34:26 +03:00
Marc Zinnschlag
cd7268e9af Merge remote-tracking branch 'akortunov/effectResistFix' into openmw-44 2018-06-04 16:58:22 +02:00
Capostrophic
c14536a399 Update faction-owned items confiscation 2018-06-03 20:28:53 +03:00
Capostrophic
3810ade67a Don't make unnecessary faction ID searches 2018-06-03 12:38:53 +03:00
Capostrophic
191cc76378 Consider faction ownerships in item stolen checks (fixes #4293) 2018-06-03 10:22:20 +03:00
elsid
dba79f4d4d
Fix warnings: catching polymorphic type by value
openmw/apps/openmw/mwworld/worldimp.cpp: In member function ‘virtual bool MWWorld::World::findExteriorPosition(const string&, ESM::Position&)’:
openmw/apps/openmw/mwworld/worldimp.cpp:2650:25: warning: catching polymorphic type ‘class std::invalid_argument’ by value [-Wcatch-value=]
             catch (std::invalid_argument)
                         ^~~~~~~~~~~~~~~~
openmw/apps/openmw/mwworld/worldimp.cpp:2654:25: warning: catching polymorphic type ‘class std::out_of_range’ by value [-Wcatch-value=]
             catch (std::out_of_range)
                         ^~~~~~~~~~~~

openmw/components/widgets/numericeditbox.cpp: In member function ‘void Gui::NumericEditBox::onEditTextChange(MyGUI::EditBox*)’:
openmw/components/widgets/numericeditbox.cpp:41:21: warning: catching polymorphic type ‘class std::invalid_argument’ by value [-Wcatch-value=]
         catch (std::invalid_argument)
                     ^~~~~~~~~~~~~~~~
openmw/components/widgets/numericeditbox.cpp:45:21: warning: catching polymorphic type ‘class std::out_of_range’ by value [-Wcatch-value=]
         catch (std::out_of_range)
                     ^~~~~~~~~~~~
2018-06-02 14:28:46 +03:00
Andrei Kortunov
be394870e4 Fix regressions in spell resistance 2018-06-01 20:08:53 +04:00
Andrei Kortunov
84c8fb9df7 Add pursue package only when crime was reported (bug #4433) 2018-06-01 12:41:31 +04:00
Andrei Kortunov
24863f620b RotateWorld: rotate around world axis (bug #4426) 2018-05-30 16:35:52 +04:00
David Cernat
669d4d3d7e
Merge pull request #440 from OpenMW/master
Add OpenMW commits up to 27 May 2018
2018-05-27 16:10:16 +03:00
David Cernat
3efe05a88e [General] Implement WorldCollisionOverride packet 2018-05-27 16:05:40 +03:00
David Cernat
5d30a884ba [Client] Add Worldstate to CMakeLists 2018-05-27 16:00:14 +03:00
David Cernat
e8ec031a81 [Client] Create Worldstate class that inherits BaseWorldstate 2018-05-27 15:57:47 +03:00
scrawl
cfdf99f601
Revert "Merged pull request #1573"
This reverts commit 7324bd368f, reversing
changes made to 810e4416f6.
2018-05-26 11:39:30 +00:00
scrawl
99ffaafe30
Revert "Merge pull request #1701 from akortunov/standfix"
This reverts commit da47fc79f5, reversing
changes made to 7324bd368f.
2018-05-26 11:35:48 +00:00
Marc Zinnschlag
b151a89528 Merged pull request #1568 2018-05-26 12:17:07 +02:00
David Cernat
f7a084c824 [Client] Use faster check for whether actors are DedicatedPlayers 2018-05-26 08:13:26 +03:00
David Cernat
c8ec77875c [Client] Update old comments for changes made by tes3mp 2018-05-26 05:11:41 +03:00
Marc Zinnschlag
832b4bb778 Merged pull request #1659 2018-05-25 11:32:08 +02:00
David Cernat
416ee77639 [General] Add placeholder for WorldCollisionOverride packet 2018-05-25 07:09:32 +03:00
David Cernat
2edb511a0b [Client] Remove unnecessary condition from WorldTime processor 2018-05-25 07:08:51 +03:00
David Cernat
3b5fb9cd6b [General] Make it possible to set year via WorldTime 2018-05-25 03:33:12 +03:00
David Cernat
4acf93b7db [General] Make it possible to set days passed via WorldTime 2018-05-24 14:02:04 +03:00
David Cernat
74c2a0b311
Merge pull request #438 from OpenMW/master
Add OpenMW commits up to 24 May 2018
2018-05-24 12:16:11 +03:00
Andrei Kortunov
1abff5365b Capitalize enchanted items names again in spells window 2018-05-24 13:03:47 +04:00
Andrei Kortunov
afae398b5c Use utf8 lowercase function for journal index to avoid code duplication 2018-05-24 12:53:06 +04:00
Andrei Kortunov
b5374029e5 Implement case-insensitive search in spell window 2018-05-24 12:39:00 +04:00
Andrei Kortunov
9ac752ea70 Implement filtering in the spells window 2018-05-24 10:48:46 +04:00
David Cernat
46744ee90f [General] Make WorldTime script functions more consistent with others 2018-05-24 09:38:06 +03:00
Bret Curtis
da47fc79f5
Merge pull request #1701 from akortunov/standfix
Do not apply queue movement for standing actors
2018-05-23 22:35:08 +02:00
Marc Zinnschlag
7324bd368f Merged pull request #1573 2018-05-23 17:00:29 +02:00
Marc Zinnschlag
1564a3f6aa Merged pull request #1713 2018-05-23 13:51:32 +02:00
Marc Zinnschlag
2f958881b7 Merged pull request #4413 2018-05-23 13:45:35 +02:00
David Cernat
8d36d0d945 [General] Make it possible to change world's time scale via WorldTime 2018-05-23 08:31:25 +03:00
David Cernat
0be6de6607 [General] Turn RecordDynamic into a Worldstate packet 2018-05-23 07:48:28 +03:00
David Cernat
031a80ed5a [Client] Don't advance time when waiting, traveling, training or jailed 2018-05-23 05:49:51 +03:00
David Cernat
da66face25 [General] Rename GameTime packet into WorldTime 2018-05-23 00:41:29 +03:00
David Cernat
296c69d788
Merge pull request #436 from OpenMW/master
Add OpenMW commits up to 22 May 2018
2018-05-23 00:40:51 +03:00
declan-millar
b8df4b7c5a Tidy in-code comment 2018-05-21 22:14:23 +01:00
declan-millar
844aef85f3 Replace spelling: soulgem -> soul gem in code comment 2018-05-21 22:12:19 +01:00
declan-millar
9ed4f33048 Replace spelling: soulgem -> soul gem 2018-05-21 19:10:24 +01:00
declan-millar
028b528c0b Get soul magnitude before checking the rebalance setting 2018-05-21 18:16:04 +01:00
declan-millar
9346a552fa Use Rebalance soulgem values option to set soulgem value 2018-05-21 13:59:20 +01:00
declan-millar
78e79d5775 Add advanced option to Rebalance soulgem values to the launcher 2018-05-21 13:33:42 +01:00
David Cernat
5af1150ab2 [General] Turn GameTime into a Worldstate packet 2018-05-21 07:14:08 +03:00
David Cernat
e87e1dbb30 [General] Fix Worldstate packets by adding missing lines 2018-05-21 07:12:55 +03:00
declan-millar
4b1247597e Use soulgem value rebalance formula from morrowind code patch 2018-05-20 17:06:26 +01:00
Capostrophic
867a5938ca Don't reset sneaking camera offset while in GUI (fixes #4420) 2018-05-20 10:24:20 +03:00
David Cernat
43a944ddaf [General] Add and implement new Worldstate packet type 2018-05-18 06:40:28 +03:00
David Cernat
049d0d9ba7 [General] Fix remaining references to world packets/events 2018-05-17 00:08:37 +03:00
David Cernat
dc9a3bf73f
Merge pull request #429 from OpenMW/master
Add OpenMW commits up to 16 May 2018
2018-05-16 19:20:01 +03:00
Bret Curtis
67c381df4e
Merge pull request #1708 from akortunov/refidfix
fix GCC warnings
2018-05-16 15:59:31 +02:00
Andrei Kortunov
a68de93308 Initialize srate variable in openal_output 2018-05-16 16:34:58 +04:00
Andrei Kortunov
e5db5e2651 Fix 'maybe-uninitialized' warning in openal_output 2018-05-16 16:13:22 +04:00
Andrei Kortunov
df459199dd Avoid left shift of negative value 2018-05-16 12:59:05 +04:00
Bret Curtis
caf1760251
Merge pull request #1707 from akortunov/weaponreach
Display weapon reach on tooltips in feet
2018-05-16 10:27:53 +02:00
Andrei Kortunov
164e3d12fe Display weapon reach on tooltips in feet. 2018-05-16 11:18:22 +04:00
David Cernat
51698bed48 [Client] Rename WorldProcessor into ObjectProcessor 2018-05-15 22:56:47 +03:00
David Cernat
1e749938fb
Merge pull request #426 from OpenMW/master
Add OpenMW commits up to 15 May 2018
2018-05-15 21:01:33 +03:00
Bret Curtis
c75d774356
Merge pull request #1692 from akortunov/playsound
Prevent PlaySound overlapping
2018-05-15 19:03:01 +02:00
Andrei Kortunov
f8655d2425 Use actor's physics position as a ray origin in tracer 2018-05-14 20:38:53 +04:00
David Cernat
9b9dd4abaf
Merge pull request #425 from OpenMW/master
Add OpenMW commits up to 13 May 2018
2018-05-13 19:27:34 +03:00
Capostrophic
e32f38b939 Allow jumping when you're stuck on a slope (fixes #4221) 2018-05-13 17:19:33 +03:00
Capostrophic
409d466e42 Make 0/0 encumbrance 0% encumbrance 2018-05-13 17:18:45 +03:00
Capostrophic
ba077e7291 Fix movement fatigue loss encumbrance calculation (fixes #4413) 2018-05-13 17:18:45 +03:00
Capostrophic
1c9fba9a8c Fix jumping encumbrance calculation 2018-05-13 17:18:45 +03:00
Marc Zinnschlag
0f22600a98 Merged pull request #1703 2018-05-13 09:08:40 +02:00
David Cernat
78234f9071 [General] Rename Event into ObjectList & WorldObject into BaseObject 2018-05-13 00:42:24 +03:00
David Cernat
6bf3a0be1e [General] Rename WorldPackets into ObjectPackets for clarity 2018-05-12 19:40:00 +03:00
David Cernat
5458e09c8a
Merge pull request #420 from OpenMW/master
Add OpenMW commits up to 11 May 2018
2018-05-12 06:32:01 +03:00
David Cernat
77389538e8 [General] Implement ActorAI packet, part 1
The server can now make actors become followers of players or other actors.
2018-05-12 06:29:11 +03:00
Marc Zinnschlag
b7cce1a665 Merged pull request #1702 2018-05-11 10:11:17 +02:00
David Cernat
57b791ea2a [Client] Show selected object's refNum & mpNum in console window title
This allows for much easier debugging of all objects and actors.
2018-05-11 00:46:24 +03:00
David Cernat
7f00005f04 [Client] Fix GCC build
Based on 71040659ac
2018-05-10 07:16:33 +03:00
David Cernat
32d71de2f5 Update MapWindow every frame, not just when it's open (bug #4279) 2018-05-09 07:33:45 +03:00
Alf Henrik Sauge
feeee50a88 Dropping a separate NPDTstruct12 object and instead use NPDTstruct52
NPDTstruct12 is now only used when loading and saving. Turning auto calc
on and off now no longer switches between to different set of values
2018-05-09 00:25:07 +02:00
Marc Zinnschlag
3197ebd8e7 Merged pull request #1694 2018-05-08 12:19:14 +02:00
David Cernat
715012f087 [General] Implement sending of image data for map tiles in PlayerMap 2018-05-08 05:57:04 +03:00
Andrei Kortunov
b15bed8e22 Avoid excessive loadSound calls 2018-05-07 20:40:53 +04:00
Marc Zinnschlag
53b6ef6f8c minor code cleanup 2018-05-07 09:54:42 +02:00
Andrei Kortunov
17222eb821 Get rid of unnecessary find 2018-05-06 16:42:05 +04:00
Andrei Kortunov
3636cf2015 Do not apply queue movement for standing actors 2018-05-05 22:41:26 +04:00
Andrei Kortunov
1dd36329a3 Load default markers definitions (bug #4410) 2018-05-05 17:14:33 +04:00
David Cernat
df0f9b0f5e [Client] Require a certain Skill progress amount before sending packet 2018-05-01 19:34:21 +03:00
David Cernat
1b1e5e86d1 [Client] Avoid sending CellStates to server after initialization
Although b4e8560698 made players instantly able to see each other on minimalist servers that did not change their cells from the default, it created problems with the default CoreScripts where players need to be logged in before receipt of a CellStates packet from them is taken into account, with the result being that a player was recorded as having loaded their initial cells on the server's C++ side but not on the Lua side.

It may simply be best to expect servers to set player cells.
2018-05-01 18:19:52 +03:00
Andrei Kortunov
4872edc5ed Prevent PlaySound overlapping 2018-05-01 16:24:32 +04:00
Andrei Kortunov
22fb1f3403 Play spellcasting effects from objects 2018-04-30 17:12:06 +04:00
David Cernat
099f85be0a [General] Implement PlayerMomentum packet & associated script functions 2018-04-29 23:47:17 +03:00
David Cernat
273179fd5a
Merge pull request #414 from OpenMW/master
Add OpenMW commits up to 29 Apr 2018
2018-04-29 22:35:05 +03:00
David Cernat
4b501a39f4 [General] Implement DoorDestination packet & associated script functions 2018-04-29 22:32:22 +03:00
scrawl
b995584ad2
Merge pull request #1688 2018-04-29 14:27:55 +00:00
David Cernat
3b07dc4b42 [Client] Send equipment packets whenever an item charge or count changes
Since the beginnings of TES3MP, equipment packets have only been sent whenever an item has been replaced by an item with a different refId, with changes in an item's charge or count not sending a packet (but being included in the next packet sent as a result of a refId change). The reason for this was ostensibly the fact that every single equipment packet always included the details for all 19 equipment items (as per Koncord's original design decision), which would have led to massive packet spam if such a packet was sent every time you shot an arrow or lost a little bit of your armor's condition.

With minimalist equipment packets, it is now viable to send equipment packets whenever any item changes in some way, by having the equipment packet contain only that one item.
2018-04-29 05:40:42 +03:00
David Cernat
399e049d87 [Client] Fix logic for minimal size packets in LocalPlayer
Previously, the index changes were not cleared at the start of their corresponding update functions, which in turn meant that an Attribute/Skill/StatsDynamic/Equipment packet received by a player from the server made that player send back the same packet, as the index changes from it were retained.

Additionally, exchangeFullInfo was not set to false, thus sometimes leading to constant full exchanges of information.
2018-04-27 03:45:17 +03:00
David Cernat
7db74509e0 Merge pull request #412 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwscript/transformationextensions.cpp
2018-04-25 21:55:32 +03:00
Capostrophic
6b47f72959
Set character preview scene ambient to 0, 0, 0 2018-04-25 15:31:49 +03:00
scrawl
bdf1070852
Merge pull request #1688 2018-04-25 11:54:26 +00:00
scrawl
f0507e6b46
Merge pull request #1686 2018-04-25 10:27:38 +00:00
Capostrophic
bfcdf660f2 Utilize inventory character preview lighting rotation fallback settings 2018-04-23 22:48:15 +03:00
Capostrophic
9073e4d4ba Initialize playlist file list in playPlaylist (fixes #4134) 2018-04-22 23:21:29 +03:00
Capostrophic
b69e812a52 Utilize inventory character preview lighting color fallback settings 2018-04-22 22:37:27 +03:00
scrawl
d8d26f1de8
Merge pull request #1685 2018-04-22 15:34:31 +00:00
scrawl
ec4e2f0064
Merge pull request #1684 2018-04-22 15:27:31 +00:00
David Cernat
608dcbafe6 [Client] Fix skill updates for LocalPlayer partially broken by 78441c769a 2018-04-22 11:22:36 +03:00
Evgeny Kurnevsky
c025b8f8f3
Remove useless comparison. 2018-04-21 17:10:49 +03:00
David Cernat
02eef933fd
Merge pull request #411 from OpenMW/master
Add OpenMW commits up to 19 Apr 2018
2018-04-21 17:00:55 +03:00
David Cernat
a541d7df3c [General] Rework PlayerStatsDynamic packets so they are of minimal size
(cherry picked from commit fc5e883160)
2018-04-21 00:43:49 +03:00
David Cernat
b9520c11da [General] Rework PlayerEquipment packets so they are of minimal size
Moreover, rename BaseNetCreature's equipedItems into equipmentItems.

(cherry picked from commit d1ad0c91f8)
2018-04-20 22:46:16 +03:00
Capostrophic
37dc3200d1 Inherit the calling object scale in PlaceAt (fixes #4308) 2018-04-20 00:15:26 +03:00
David Cernat
c5b08d6109 [General] Simplify storing of attribute and skill index changes
(cherry picked from commit bd9e8bd10f)
2018-04-19 23:28:03 +03:00
David Cernat
2c77d5f498 [General] Set enforcedLogLevel to -1 when initializing BasePlayer 2018-04-19 20:42:27 +03:00
David Cernat
b6099024df [General] Rework PlayerAttribute packets so they are of minimal size
Previously, whenever a single attribute value changed for a player, that player then sent a PlayerAttribute packet with all values for all 8 attributes.

This did not cause anywhere as much packet spam as PlayerSkill used to, but there was no good reason not to fix it as well.

(cherry picked from commit b0965f094a)
2018-04-19 17:26:20 +03:00
David Cernat
78441c769a [General] Rework PlayerSkill packets so they are of minimal size
Previously, whenever a single skill value changed for a player, that player then sent a PlayerSkill packet with all values for all 27 skills, plus the player's progress towards the next level and the bonuses to each attribute on the next level up as the result of sklll increases thus far.

This commit makes PlayerSkill contain only the values of specific skills, moves the player's progress towards the next level to PlayerLevel packets, and moves the bonuses to each attribute on the next level up to PlayerAttribute packets.

Players now also send a PlayerSkill packet whenever their progress towards a new point in a skill changes. This was previously avoided so as to not have massive packet spam.

(cherry picked from commit ef79a98544)
2018-04-19 15:18:38 +03:00
scrawl
5d1b40c5ea
Merge pull request #1678 2018-04-19 12:18:24 +00:00
David Cernat
af4fcb7261 [Client] Don't force skill update on cell change
Previously, an attempt by the server to simultaneously change a player's cell and skills (as you'd expect when a player file is loaded) led to:

1) The server sending the cell packet first and the skill packet afterwards

2) The player receiving the cell packet and sending their own skill packet as part of the client's forced skill update

3) The player receiving the skill packet from the server

4) The server receiving the skill packet from the player

The result was that, if the player then left the server without sending another skill packet, the server's memory retained the skills the player had sent instead of the skills it had sent to the player.

This is the first step in a solution to that situation and similar ones.

(cherry picked from commit cac4684986)

Note: In 0.6.x, this was only a problem if a player's cell was set by the server first and their skills were set next, i.e. this was not a problem in the default CoreScripts because the opposite order used there masked the problem. It was a more significant problem in 0.7 because all packets were queued for a player and sent in a specific hardcoded order.
2018-04-19 14:22:14 +03:00
David Cernat
57070b7f5c [Client] Disable automatic transition to other chargen menus from OpenMW
Previously, after finishing the TES3MP chargen once, mCreationStage was set to 4 in OpenMW, which in turn made it impossible to go through only specific chargen menus again as the result of the relevant TES3MP script function (tes3mp.SetCharGenStage(pid, startStage, endStage) in 0.6.3, player:setCharGenStages(startStage, endStage) in 0.7). In other words, trying to allow a player to just choose their class again made it so the player started at that menu and went through all the other subsequent menus as well, i.e. the player went through the class, birthsign and review menus.
2018-04-19 13:47:42 +03:00
David Cernat
28f1c1b0d3 [General] Rework CharGen slightly for clarity purposes
Previously, charGenStage.end was doing double duty as both the variable indicating the number of CharGen stages and – when set to 0 – the variable indicating that CharGen was over. The latter role is now filled by a new boolean.

(cherry picked from commit 926106cf8c)
2018-04-19 13:25:29 +03:00
David Cernat
9d46de88e0 [Client] Send cell states correctly after inputting name
Previously, initial cell states were sent in LocalPlayer::processCharGen() and were ignored by the server because the player was not yet regarded as loaded. The result was that existing players logging in could not see each other until they went through at least one cell change.

(cherry picked from commit b4e8560698)

# Conflicts:
#	apps/openmw/mwmp/LocalPlayer.cpp
2018-04-18 20:30:48 +03:00
Capostrophic
8617d0603b Display a message if a spell the player tries to use via a quick key is missing (fixes #4391) 2018-04-18 19:10:46 +03:00
David Cernat
9e5ddeac50
Merge pull request #408 from OpenMW/master
Add OpenMW commits up to 18 Apr 2018
2018-04-18 18:05:09 +03:00
tri4ng1e
d310d36ea3
[Fix] Some PVS-Studio and cppcheck fixes 2018-04-18 12:36:10 +00:00
tri4ng1e
d4d1703bcf
Some PVS-Studio and cppcheck fixes
cppcheck:
[apps/esmtool/record.cpp:697]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1126]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1138]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/niftest/niftest.cpp:36]: (performance) Function parameter 'filename' should be passed by reference.
[apps/niftest/niftest.cpp:41]: (performance) Function parameter 'filename' should be passed by reference.
[apps/opencs/model/prefs/boolsetting.cpp:25]: (warning) Possible leak in public function. The pointer 'mWidget' is not deallocated before it is allocated.
[apps/opencs/model/prefs/shortcuteventhandler.cpp:52]: (warning) Return value of std::remove() ignored. Elements remain in container.
[apps/openmw/mwstate/quicksavemanager.cpp:5]: (performance) Variable 'mSaveName' is assigned in constructor body. Consider performing initialization in initialization list.

PVS-Studio:
apps/opencs/model/filter/parser.cpp  582  warn  V560 A part of conditional expression is always true: allowPredefined.
apps/opencs/view/world/referencecreator.cpp  67  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/world/referencecreator.cpp  74  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !completed.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !error.empty().
apps/opencs/model/tools/pathgridcheck.cpp  32  err  V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. Check lines: 32, 34.
apps/opencs/model/world/refidadapterimp.cpp  1376  err  V547 Expression 'subColIndex < 3' is always true.

apps/openmw/mwgui/widgets.hpp  318  warn  V703 It is odd that the 'mEnableRepeat' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:318, MyGUI_ScrollBar.h:179.
apps/openmw/mwgui/widgets.hpp  319  warn  V703 It is odd that the 'mRepeatTriggerTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:319, MyGUI_ScrollBar.h:180.
apps/openmw/mwgui/widgets.hpp  320  warn  V703 It is odd that the 'mRepeatStepTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:320, MyGUI_ScrollBar.h:181
apps/openmw/mwmechanics/actors.cpp  1425  warn  V547 Expression '!detected' is always true.
apps/openmw/mwmechanics/character.cpp  2155  err  V547 Expression 'mode == 0' is always true.
apps/openmw/mwmechanics/character.cpp  1192  warn  V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
apps/openmw/mwmechanics/character.cpp  521  warn  V560 A part of conditional expression is always true: (idle == mIdleState).
apps/openmw/mwmechanics/pathfinding.cpp  317  err  V547 Expression 'mPath.size() >= 2' is always true.
apps/openmw/mwscript/interpretercontext.cpp  409  warn  V560 A part of conditional expression is always false: rank > 9.
apps/openmw/mwgui/windowbase.cpp  28  warn  V560 A part of conditional expression is always true: !visible.
apps/openmw/mwgui/journalwindow.cpp  561  warn  V547 Expression '!mAllQuests' is always false.
apps/openmw/mwgui/referenceinterface.cpp  18  warn  V571 Recurring check. The '!mPtr.isEmpty()' condition was already verified in line 16.
apps/openmw/mwworld/scene.cpp  463  warn  V547 Expression 'adjustPlayerPos' is always true.
apps/openmw/mwworld/worldimp.cpp  409  err  V766 An item with the same key '"sCompanionShare"' has already been added.
apps/openmw/mwworld/cellstore.cpp  691  warn  V519 The 'state.mWaterLevel' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 689, 691.
apps/openmw/mwworld/weather.cpp  1125  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1123, 1125.
apps/openmw/mwworld/weather.cpp  1137  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1135, 1137.

apps/wizard/unshield/unshieldworker.cpp  475  warn  V728 An excessive check can be simplified. The '(A && B) || (!A && !B)' expression is equivalent to the 'bool(A) == bool(B)' expression.
apps/wizard/installationpage.cpp  163  warn  V735 Possibly an incorrect HTML. The "</p" closing tag was encountered, while the "</span" tag was expected.

components/fontloader/fontloader.cpp  427  err  V547 Expression 'i == 1' is always true.
components/nifosg/nifloader.cpp  282  warn  V519 The 'created' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 278, 282.
components/esm/loadregn.cpp  119  err  V586 The 'clear' function is called twice for deallocation of the same resource. Check lines: 112, 119.
components/esm/cellref.cpp  178  warn  V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 175, 178.
components/esmterrain/storage.cpp  235  warn  V560 A part of conditional expression is always true: colStart == 0.
components/esmterrain/storage.cpp  237  warn  V560 A part of conditional expression is always true: rowStart == 0.
2018-04-18 12:36:10 +00:00
David Cernat
17678ee60f
Merge pull request #407 from OpenMW/master
Add OpenMW commits up to 17 Apr 2018
2018-04-17 15:25:28 +03:00
David Cernat
50fe54af5d [Client] Update DedicatedPlayer creature if displayCreatureName changes 2018-04-17 15:23:10 +03:00
David Cernat
a01fc577f1 [Client] Add setAttributes() and setSkills() methods to DedicatedPlayer 2018-04-13 16:59:48 +03:00
David Cernat
716809f2db [Client] Prevent errors from NPC-only packets for DedicatedPlayers 2018-04-13 16:23:42 +03:00
David Cernat
68ee64902d [Client] Track & use previous race & creatureRefId for DedicatedPlayers 2018-04-13 16:16:43 +03:00
David Cernat
acb1335d78 [Client] Make creature disguises update correctly 2018-04-13 11:30:38 +03:00
David Cernat
70f9cb535e [General] Use RecordHelper methods to create and update DedicatedPlayers 2018-04-13 08:37:06 +03:00
Andrei Kortunov
174b3d2249 Reset an inventory filter after reload or a new game start (bug #4392) 2018-04-13 09:19:49 +04:00
David Cernat
49e94725aa [Client] Prevent MechanicsManager::playerLoaded() from enabling AI 2018-04-12 17:18:06 +03:00
David Cernat
9d27f5f154 [Client] Create RecordHelper class with initial NPC and creature methods 2018-04-12 14:18:19 +03:00
David Cernat
9697595857 [Client] Don't equip already equipped items in local setEquipment()
This avoids the following error when receiving repeated PlayerBaseInfo packets: "Error in frame: Invalid slot, make sure you are not calling RefData::setCount for a container object"

Additionally, only re-equip items as the result of a PlayerBaseInfo packet if resetStats is true (because of its side effect of auto-equipping items for the player).
2018-04-10 19:02:55 +03:00
David Cernat
72463cfdb6 [Client] Refresh equipment for DedicatedPlayers when setting base info
Additionally, move default fatigue value to DedicatedPlayer initialization.
2018-04-10 19:02:55 +03:00
David Cernat
fa652964fd
Merge pull request #403 from OpenMW/master
Add OpenMW commits up to 9 Apr 2018
2018-04-10 06:43:24 +03:00
Capostrophic
d9acd19dc0
Merge branch 'master' into illusion 2018-04-09 23:33:11 +03:00
scrawl
0982d2175a
Merge pull request #1473 2018-04-09 20:23:43 +00:00
scrawl
92d0fb2981
Merge pull request #1667 2018-04-09 20:23:38 +00:00
scrawl
35300c04cd
Merge pull request #1671 2018-04-09 20:23:35 +00:00
scrawl
308551ad49
Merge pull request #1644 2018-04-09 20:23:24 +00:00
scrawl
cbddb4a0a9
Merge pull request #1638 2018-04-09 20:23:20 +00:00
David Cernat
73dea494c4 [General] Allow changes from PlayerBaseInfo without player stat reset 2018-04-09 19:21:19 +03:00
Capostrophic
cddc0914c8 Option to charge for all companions travelling (fixes #4064) 2018-04-09 19:19:50 +03:00
David Cernat
c132dc70d2 [Client] Make PlayerShapeshift turn DedicatedPlayers into creatures 2018-04-09 15:23:05 +03:00
David Cernat
141eb8b7c2 [Client] Streamline creation of references for DedicatedPlayers
Additionally, delete DedicatedPlayers who disconnect.

Previously, all disconnected DedicatedPlayers were still kept in memory, but never used again. There was code that suggested they were meant to be reused upon reconnecting, but that reuse had never actually been implemented, and would probably not be that useful anyway.
2018-04-08 15:02:43 +03:00
David Cernat
14f90e773d [Client] Split up creation of DedicatedPlayers into multiple methods
Additionally, print player guids using their string representations for consistency.

The creation and updating of DedicatedPlayer references remains very inelegant, but this commit is the first step towards fixing that.
2018-04-08 10:56:33 +03:00
Capostrophic
77467f17c9
Fix a typo 2018-04-06 00:10:48 +03:00
David Cernat
c8abd11f5d [General] Move creature disguises for players to PlayerShapeshift packet
Additionally, make associated variables clearer, and move associated server script functions next to other shapeshifting functions.
2018-04-05 15:42:06 +03:00
David Cernat
34be9383e5 [General] Add isPlayer boolean to targets in packets 2018-04-05 12:48:53 +03:00
David Cernat
0eed05610b [Client] Fix autoequipping for creatures in WorldEvent::editContainers() 2018-04-03 15:22:51 +03:00
David Cernat
a86c68c5a1 [General] Add sync for ranged weapon & projectile strike enchantments 2018-04-03 14:12:27 +03:00
David Cernat
3f8d94b030 [General] Synchronize strike enchantments in combat 2018-04-03 10:27:02 +03:00
Andrei Kortunov
27c831959e Handle OnPCHitMe variable (bug #2703) 2018-04-03 07:38:19 +04:00
David Cernat
e3c43c6af7 Merge pull request #400 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwmechanics/spellcasting.cpp
2018-04-03 01:25:17 +03:00
Capostrophic
4f64ba7b7f Implement sBookSkillMessage GMST 2018-04-02 21:12:38 +03:00
scrawl
c6abec1e51
Merge pull request #1641 2018-04-02 17:53:30 +00:00
scrawl
d935e78f93
Merge pull request #1645 2018-04-02 17:39:23 +00:00
scrawl
c610b8acc8
Merge pull request #1649 2018-04-02 17:37:31 +00:00
scrawl
cd9f767e29
Merge pull request #1650 2018-04-02 17:32:40 +00:00
scrawl
8e37f6bf3e
Merge pull request #1656 2018-04-02 17:28:46 +00:00
scrawl
f36adfec5f
Merge pull request #1657 2018-04-02 17:28:12 +00:00
scrawl
80a8ef6d49
Merge pull request #1661 2018-04-02 17:18:39 +00:00
elsid
14daadded7
Add virtual destructors
To fix warnings:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr_base.h:588:8: warning: delete called on non-final 'NifOsg::ControllerFunction' that has virtual functions but non-virtual destructor
      [-Wdelete-non-virtual-dtor]
              delete __p;
              ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr_base.h:595:4: note: in instantiation of function template specialization
      'std::__shared_count<__gnu_cxx::_S_atomic>::__shared_count<NifOsg::ControllerFunction *>' requested here
        : __shared_count(__p)
          ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr_base.h:1079:17: note: in instantiation of function template specialization
      'std::__shared_count<__gnu_cxx::_S_atomic>::__shared_count<NifOsg::ControllerFunction *>' requested here
        : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type())
                       ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr.h:129:25: note: in instantiation of function template specialization 'std::__shared_ptr<NifOsg::ControllerFunction,
      __gnu_cxx::_S_atomic>::__shared_ptr<NifOsg::ControllerFunction, void>' requested here
        shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
                               ^
/home/elsid/dev/openmw/components/nifosg/nifloader.cpp:242:39: note: in instantiation of function template specialization 'std::shared_ptr<NifOsg::ControllerFunction>::shared_ptr<NifOsg::ControllerFunction, void>' requested here
                callback->setFunction(std::shared_ptr<NifOsg::ControllerFunction>(new NifOsg::ControllerFunction(key)));
                                      ^

/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/unique_ptr.h:78:2: warning: delete called on non-final 'MWGui::ResponseCallback' that has virtual functions but non-virtual destructor
      [-Wdelete-non-virtual-dtor]
        delete __ptr;
        ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/unique_ptr.h:268:4: note: in instantiation of member function 'std::default_delete<MWGui::ResponseCallback>::operator()' requested here
          get_deleter()(__ptr);
          ^
/home/elsid/dev/openmw/apps/openmw/mwgui/dialogue.cpp:58:23: note: in instantiation of member function 'std::unique_ptr<MWGui::ResponseCallback, std::default_delete<MWGui::ResponseCallback> >::~unique_ptr' requested here
    PersuasionDialog::PersuasionDialog(ResponseCallback* callback)
                      ^
2018-04-01 21:51:59 +03:00
David Cernat
26a56d6a02 [Client] Include NPC/creature containers when adding all cell containers 2018-04-01 14:58:04 +03:00
David Cernat
1e3c4fd488 [Client] Fix ProcessorContainer typos caused by careless copy-pasting 2018-04-01 10:47:57 +03:00
David Cernat
7b97e8671d
Merge pull request #398 from OpenMW/master
Add OpenMW commits up to 30 March 2018
2018-04-01 10:04:04 +03:00
David Cernat
f80f3bd484 [Client] Make it possible to reply to requests about specific containers
Previously, a Container packet with a REQUEST action always made the client respond with the contents of all the containers in that cell.

The previous behavior now only happens for requests that have no WorldObjects attached, while requests that have WorldObjects attached get a reply with the contents of those specific containers.
2018-04-01 10:00:39 +03:00
David Cernat
ec1311fcb7 [Client] Make it possible to check whether a class has a ContainerStore 2018-04-01 09:33:07 +03:00
David Cernat
258e319acb [Client] Require InventoryStore for autoequipping actors 2018-04-01 09:02:26 +03:00
David Cernat
afe8c97cb9 [Client] Require InventoryStore for unequipping actors in editContainers 2018-04-01 08:41:57 +03:00
David Cernat
d8b48f6cf4 [Client] Remove redundant container methods from CellController 2018-04-01 07:11:43 +03:00
Capostrophic
baaf65bc2c Add vanilla enchanted weaponry behavior option, on by default (fixes #4136) 2018-03-31 11:46:23 +03:00
Capostrophic
2dca389a3b Extend magic resistance/weakness to all effects that can be resisted (fixes #4309) 2018-03-30 21:18:29 +03:00
Ilya Zhuravlev
fdcfbdbdd1 android: Update for sdl 2.0.8 2018-03-30 12:44:38 -04:00
Capostrophic
e6d9bce519 Implement fWerewolfHealth GMST (fixes #4142) 2018-03-30 19:27:18 +03:00
David Cernat
365f485e8d Merge pull request #397 from OpenMW/master while resolving conflicts
Conflicts:
	components/CMakeLists.txt
2018-03-30 10:28:52 +03:00
Capostrophic
76f50312f2
Remove a redundant check 2018-03-30 00:02:52 +03:00
David Cernat
ac82124a5d Merge pull request #395 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwmechanics/actors.cpp
2018-03-29 07:28:30 +03:00
David Cernat
1c340568d2 [Client] Disallow resting if player has not finished chargen
Previously, players pressing T rapidly before logging in had the Wait screen show up for them.
2018-03-29 06:04:20 +03:00
bret curtis
4890ecd357 remove native GLESv* support, as it never worked; make things less complicated as result, fixed lighting.glsl to work with gl2es thanks to ptitSeb 2018-03-27 20:20:40 +02:00
Capostrophic
2d119e834a Add vanilla absorb attribute behavior option, on by default (Fixes #4135) 2018-03-27 14:27:23 +03:00
Capostrophic
b6a2589e7b Don't apply harmful spell effects on the player in god mode (fixes #4264) 2018-03-27 14:02:14 +03:00
David Cernat
5f6ddcfc59 [General] Rework container sync to prevent item duping
A main priority in TES3MP development is to avoid making major changes to OpenMW code, so as to avoid merge conflicts in the future. Whenever avoiding potential conflicts seems especially difficult for the proper implementation of a particular multiplayer feature, that multiplayer feature is often put off until later or partially implemented with the intent of being revisited in the future.

Container sync is the perfect example. Previously, the OpenMW code for container actions was kept exactly as it was, with clients unilaterally accepting their own container changes as per singleplayer-specific code, with only the addition that clients sent container packets every time they made a change in a container, packets which were then forwarded unquestioningly by the server to other players. This meant that two players clicking on the same item in a container at the same time both managed to take it, thus duplicating the item.

Immediately after the packets were already forwarded, server scripts were able to check for incorrect changes, such as the removal of more items than should have existed in a container, but they had to send their own packets that attempted to fix what had already been accepted on the initial client and then forwarded to all clients, which was quite onerous in some scenarios, such as when a player on a slow connection immediately dropped items in the world after taking them from a container (which is why the default TES3MP serverside scripts made no attempt at sending corrective packets at all, preferring to expect the matter to be solved in a later C++ implementation).

This commit fixes item duping in containers by preventing container actions from initially running on clients and by ending the automatic forwarding of container packets by the server. Instead, clients now send container packets that act as requests for container actions, and serverside scripts have to forward these requests themselves. In other words, without a matching Container event in the server's Lua scripts, players are completely unable to affect containers for themselves or for others.

To forward a received Container packet, the following line must be used in a Container event in the Lua scripts:

tes3mp.SendContainer(true, true)

When an invalid action count is used in a container request, the serverside scripts can amend it using the following new function:

tes3mp.SetReceivedContainerItemActionCount(objectIndex, itemIndex, actionCount)

Thus, the serverside scripts are able to allow only container actions that are correct based on their own recorded contents for that container.

The OpenMW code allowing unilateral container actions in mwgui/container.cpp is now prevented from executing. When a player's container request is returned to them, code in mwmp/WorldEvent.cpp simulates those container actions instead.
2018-03-26 19:27:36 +03:00
David Cernat
9165b12d78 [Client] Update inventory views when receiving inventory or equipment 2018-03-26 10:01:26 +03:00
Capostrophic
41f89c84f8 Don't move the player if opposite direction keys are held down at the same time (Fixes #4233) 2018-03-25 12:20:48 +03:00
David Cernat
bb15ee9215 [Client] Make it possible to get ContainerWindow from elsewhere in code 2018-03-24 09:00:15 +02:00
Capostrophic
42b7846f81 Replace a redundant playerAllies check with a boolean (Fixes #4229) 2018-03-23 18:45:39 +03:00
Nelsson Huotari
63e34a5575 Typofix: updateCrimePersuit -> ...Pursuit 2018-03-23 14:10:43 +02:00
David Cernat
bbdc30628b [Client] Use the correct guid for a received WorldEvent or ActorList 2018-03-21 06:08:04 +02:00
scrawl
c02920bcd1
Merge pull request #1634
Conflicts:
	apps/openmw/mwworld/worldimp.hpp
2018-03-20 22:48:20 +00:00
scrawl
f47429d575
Merge pull request #1635 2018-03-20 22:47:36 +00:00
scrawl
ff7f964643
Merge pull request #1636 2018-03-20 22:47:31 +00:00
David Cernat
14f0299322 [Client] Don't log InputBox inputs for client 2018-03-20 06:41:04 +02:00
Andrei Kortunov
fed3e56fc1 Weather manager: get rid of World dependency 2018-03-19 23:08:15 +04:00
Andrei Kortunov
53ef345680 Update magic effect particles after building new animation (bug #2254) 2018-03-19 10:43:22 +04:00
Andrei Kortunov
a0a30cdbf5 AI: hide torches during bad weather (bug #4334) 2018-03-19 08:03:53 +04:00
Andrei Kortunov
bd6c7de579 Do not unequip two-handed weapon when equipping torch 2018-03-19 08:03:53 +04:00
Capostrophic
5b49248d6e
Restrict opening doors to bipedal actors (Fixes #4313) 2018-03-18 17:24:27 +03:00
scrawl
edb57306b6
Merge pull request #1628 2018-03-16 23:25:29 +00:00
scrawl
7a5748a9f1
Merge pull request #1632 2018-03-16 23:24:05 +00:00
elsid
a26483ab26 Fix memory leak
There is no delete for TextFormat objects in PageDisplay destructor.
2018-03-13 21:32:59 +03:00
elsid
26df0e6ebd Remove duplicated include 2018-03-13 21:28:38 +03:00
David Cernat
20caea083a [Client] Use correct count for items in equipment packets
Previously, throwing weapon sync was completely broken for players, as the count for their equipped throwing weapons was never set and – as a result – defaulted to a count of 1 on other clients. As a result, any time a player threw a dart, they would then appear as having switched to hand-to-hand for other players.

Moreover, the count of equipped items was mistakenly based on the total count of items with that refId in the inventory. As a result, if – for example – I equipped 1 Daedric Longsword and had 4 others in my inventory, my DedicatedPlayer on other clients would equip a Daedric Longsword with a count of 5. If I was overencumbered by having that many Daedric Longswords on me and then dropped 4 of them, allowing myself to move again, my DedicatedPlayer would still walk around with 5 Daedric Longswords and lack animations due to still being overencumbered on the other clients.

These problems were less prevalent for actors, but their equipment updating code has also been changed to match that of players.
2018-03-12 23:31:37 +02:00
Andrei Kortunov
e0aa5e8e79 Prevent overlapping for journal and books scrolling 2018-03-11 16:19:37 +04:00
David Cernat
b249162ca1 [General] Implement setting of enforced client log level in GameSettings
Certain servers do not want the players to have debug information about the locations and actions of other players, so a client's log level can now be enforced by the server via the GameSettings packet.
2018-03-11 04:50:59 +02:00
David Cernat
a3a341fee6 [Server] Reimplement 4ebfcc4a21 for 0.6 2018-03-10 22:19:44 +02:00
David Cernat
bf906b3f0a
Merge pull request #393 from OpenMW/master
Add OpenMW commits up to 10 March 2018
2018-03-10 18:37:51 +02:00
David Cernat
b7c6261e16 Merge pull request #392 from OpenMW/master while resolving conflicts
# Conflicts:
#	README.md
2018-03-09 21:07:46 +02:00
Andrei Kortunov
62c04c6758 Unstack soulgem, added via AddSoulGem console command (bug #4351) 2018-03-09 21:49:27 +04:00
scrawl
e81faf5f2f
Add an option to disable GUI keyboard navigation (Bug #4333) 2018-03-08 23:39:35 +00:00
scrawl
870c658500
Remove missing souls, remove some runaway exceptions (Fixes #4111) 2018-03-08 23:38:04 +00:00
scrawl
7f39dbb129
Merge pull request #1626 2018-03-08 20:52:37 +00:00
Harald H
d3b623b5d3 http to https for supported urls (#1625)
* http to https for supported urls

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http tp https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* some url fixes

* http to https
2018-03-08 21:23:24 +01:00
Thunderforge
dfcd243150 Remove the word "interior" from cell not found message 2018-03-07 19:57:54 -06:00
scrawl
bf78c18296
Merge pull request #1624 2018-03-07 18:12:32 +00:00
scrawl
148cda254d
Merge pull request #1617 2018-03-07 18:12:26 +00:00
Capostrophic
3b922d810a Don't use floating point arithmetics for formatted count (Bug #4346) 2018-03-07 15:36:10 +03:00
Capostrophic
60a663ef58 Account for all possible count values in getCountString (Bug #4346) 2018-03-06 16:50:38 +03:00
Chris Robinson
01dbac7b15 Don't use a different setting for distant viewing distance 2018-03-04 11:37:57 -08:00
Chris Robinson
41669467ae Make settings for distant fog parameters 2018-03-04 11:37:57 -08:00
Chris Robinson
4caa7c9674 Workaround older MSVC quirk 2018-03-04 11:37:57 -08:00
Chris Robinson
154cc8c659 Use alternate fog parameters when distant land is enabled
This allows the distant land to actually be seen when the user enables it. The
values used are replicated from MGE XE's default settings and should probably
be exposed somewhere.
2018-03-04 11:37:57 -08:00
Chris Robinson
6d557fec8e Increase the far clip plane when distant terrain is enabled 2018-03-04 11:37:57 -08:00
Capostrophic
d371bebb33 Prevent items in a container owned by a dead actor from being counted as stolen (Bug #4328) 2018-03-03 15:57:13 +03:00
Capostrophic
cc0c6ddaa6 Account for empty victimRef (Bug #4328) 2018-03-03 15:57:03 +03:00
scrawl
839196e4fa
Force normal polygon mode for the map camera (Fixes #4235) 2018-03-03 00:15:57 +00:00
David Cernat
c18d07827d [Client] Hide difficulty widget because it has no use in multiplayer 2018-03-01 09:31:21 +02:00
David Cernat
37b349c2f6
Merge pull request #390 from OpenMW/master
Add OpenMW commits up to 28 Feb 2018
2018-03-01 05:33:37 +02:00
scrawl
9e9c278527
Merge pull request #1597 2018-02-27 23:48:45 +00:00
Capostrophic
929fc68160
Consider items with dead owner not stolen (fixes bug #4328) 2018-02-26 23:21:51 +03:00