1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-27 15:09:43 +00:00
Commit graph

4903 commits

Author SHA1 Message Date
Andrei Kortunov
a615076c61 Add default return value 2018-10-31 10:18:29 +04:00
AnyOldName3
3785ba6aa0 Merge upstream/master 2018-10-30 22:38:09 +00:00
AnyOldName3
90986df81c Allow OSG objects to be sent to the debug log. 2018-10-30 22:15:32 +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
AnyOldName3
1ca7ea23d1 Add extra uniforms to the disabled shadows StateSet so that the shadow texture samplers are bound ot the dummy shadow maps correctly. 2018-10-30 17:07:11 +00:00
Bret Curtis
3c53fe16e9
Merge pull request #1986 from akortunov/rootfix
[Regression] Handle RootCollisionNode exactly as in original engine
2018-10-29 22:47:04 +01:00
elsid
49d81241db Merge branch 'master' into pathfinder_detour 2018-10-28 17:08:09 +03:00
elsid
50b6ae3e10 Fix calculation for shape local AABB 2018-10-28 16:58:22 +03:00
elsid
af2f4e8424 Allow to use zero cache size 2018-10-28 16:54:06 +03: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
6e05853478 Center progress bar when there are active messageboxes (bug #4691) 2018-10-28 14:40:48 +04:00
Andrei Kortunov
61da6b6ecf Print warning if the RootCollisionNode is attached to non-root node (bug #4311) 2018-10-26 17:11:08 +04:00
Andrei Kortunov
6d91fe69b2 Revert "Handle RootCollisionNode, attached to non-root node (bug #4311)"
This reverts commit ec9a1b0d05.
2018-10-26 12:51:04 +04:00
Marc Zinnschlag
4d88d6dd58 Merged pull request #1980 2018-10-25 11:06:22 +02:00
AnyOldName3
1e2bf9c447 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-10-24 20:13:13 +01:00
Andrei Kortunov
61e6e359c4 Allow creatures to use the autogenerated collision box (feature #2787) 2018-10-22 15:48:23 +04:00
Andrei Kortunov
41e90bd56c Unify random generator usage 2018-10-19 16:16:18 +04:00
AnyOldName3
b0907f8929 Add todos in case they're left until after the shadow PR is merged 2018-10-18 16:01:36 +01:00
AnyOldName3
a41ce42208 Move setting of colorMode to ShaderRequirements in case they're reused 2018-10-18 16:00:51 +01:00
AnyOldName3
474770eca8 Switch shadow map rendering to a specialised, simplified shader. 2018-10-16 21:23:31 +01:00
AnyOldName3
ce15369bbd Convert colorMode shader define to a uniform 2018-10-15 23:12:15 +01:00
elsid
03d4ce5e49
Log find path exception with level verbose, add more info to message 2018-10-15 23:25:42 +03:00
elsid
dc2eb2e16b
Do not write to global log async navmesh updater exceptions 2018-10-15 22:47:07 +03:00
Bret Curtis
53ccce1867
Merge pull request #1966 from akortunov/logfix
Allow apps without logging system to display log messages
2018-10-14 11:20:36 +02:00
Andrei Kortunov
b5df385111 Allow apps without logging system to display log messages 2018-10-14 12:07:15 +04:00
elsid
e57504ae7c
Lower log level 2018-10-13 22:22:15 +03:00
elsid
0f6a64ad54
Split makeNavMeshTileData 2018-10-13 22:22:15 +03:00
elsid
fb655cb04f
Remove macroses to check recastnavigation functions result 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
69b5834c64
Add doc for Navigator 2018-10-13 22:16:35 +03:00
elsid
ae7285e960
Use ScopeGuarded instead of raw mutex 2018-10-13 22:16:35 +03:00
elsid
cf4066751c
Add classes to encapsulate value guarded by mutex 2018-10-13 22:16:35 +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
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
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
72f211ef28
Add enums for area type and flags 2018-10-13 22:16:32 +03:00
elsid
fa23b590a4
Add unwalkable areas to NavMesh 2018-10-13 22:16:32 +03:00
elsid
c771986c56
Prioritise NavMesh jobs first to remove and last to add
When player move fast enough, tiles update for specific area square
couldn't catch player move. Tiles to be removed are left in the queue
with lower priority then tiles to be added which are nearest to player.
This can lead to overflow for amount of tiles. So we try to do remove
first. But we detect change type approximately using mixed change type,
because even if we do it precise, change type could change while job
is in queue.
2018-10-13 22:16:31 +03:00
elsid
b33a291a67
Log thread id 2018-10-13 22:16:31 +03:00
elsid
f6a60790f8
Create collision shape for all avoided nodes 2018-10-13 22:16:31 +03:00
elsid
e24d4d7052
Explicitly use RC_NULL_AREA constant to mark unwalkable areas 2018-10-13 22:16:31 +03:00
elsid
330e596c64
Remove useless parameter 2018-10-13 22:16:31 +03:00
elsid
c3298d13a6
Add log sinks (stdout and file) 2018-10-13 22:16:31 +03:00
elsid
84949bedb1
Remove and add tile in single critical section 2018-10-13 22:16:30 +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
d2fd9abd51
Split RecastMesh into tiles 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
f268ec5d34
Measure total time for NavMesh build from first pop 2018-10-13 22:16:29 +03:00
elsid
c26773bd29
Log update NavMesh status 2018-10-13 22:16:29 +03:00
elsid
937e8e1803
Allow to create empty RecastMesh 2018-10-13 22:16:29 +03:00
elsid
dd5f4498f6
Increment NavMesh revision on remove or add tile 2018-10-13 22:16:29 +03:00
elsid
ed3a255f65
Do not use NavMesh to find changed tiles 2018-10-13 22:16:28 +03:00
elsid
d1e71f9322
Support btBoxShape for RecastMesh 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
1caa18bb4f
Use one recast mesh for all jobs 2018-10-13 22:16:27 +03:00
elsid
794cfc4aa3
Write detournavigator log to file 2018-10-13 22:16:27 +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
f8909218ee
Store recast mesh bounds 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
430ba9d7a5
Build NavMesh tile data only for changed tiles 2018-10-13 22:16:25 +03:00
elsid
fafba8ea0c
Use recastnavigation to find path 2018-10-13 22:16:25 +03:00
elsid
4f2bfa1e9d
Add operators for osg types 2018-10-13 22:16:25 +03:00
elsid
c01be7b07f
Add operators for bullet types 2018-10-13 22:16:25 +03:00
jvoisin
ca8744af56 Fix crash in the ESM reader, when SCVR has no variable names
Fixes bug [#4678](https://gitlab.com/OpenMW/openmw/issues/4678)
The `loadSCVR` method assumes that the list of variable
names won't be empty, which it might.
Instead of crashing, we show a warning and ignore the record.
2018-10-12 11:28:14 +02:00
Andrei Kortunov
f9271fd7f0 Fix crash in the ESM reader, when list is empty (bug #4677) 2018-10-12 10:38:32 +04:00
AnyOldName3
0124be5713 Merge upstream/master 2018-10-10 21:23:19 +01:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
cc9cii
6ec6b9bc2a OpenMW Integration.
Read the ESM/ESP records but do nothing with them for the moment.
2018-10-07 08:55:30 +11:00
cc9cii
15d5cdf3cf Allow TES4 ESM/ESP to co-exist with TES3 ESM/ESP.
This change aims to allow TES4/TE5 content to OpenMW.  i.e. a standalone TES4 would be implemented quite differently.  That said, the key changes are:

* Use pointers rather than references for ESM readers so that they can be switched to another variant on the fly.
* Content file dependencies to be checked within each group (only 3 groups for now, TES3/TES4/TES5)
2018-10-06 20:38:53 +10:00
cc9cii
3982573035 BSA enhancements.
* Implement hash based lookup for TES3 BSA files.
* Added TES4/TES5 BSA support.
* Implemented a hack (non-portable code) in an attempt to reduce startup time under Windows because  Boost::filesystem seems to take forever on GetFileAttributeW.  This implementation uses FindFirstFile/FindNextFile/FindClose instead.
2018-10-06 13:35:51 +10:00
cc9cii
4cd4cf8479 Resolved conflicts and build fixes. 2018-10-05 21:54:29 +10:00
scrawl
f456174af8 Rename to lowerCaseInPlace
(cherry picked from commit 07b064f616)

# Conflicts:
#	apps/opencs/model/world/commanddispatcher.cpp
#	apps/opencs/model/world/regionmap.cpp
#	apps/opencs/model/world/scriptcontext.cpp
#	apps/openmw/mwrender/animation.cpp
#	apps/openmw/mwscript/statsextensions.cpp
#	apps/openmw/mwworld/store.cpp
#	components/misc/stringops.hpp
2018-10-05 19:16:46 +10:00
scrawl
b4cdb965dc Move rng to components
(cherry picked from commit 8c810e3620)

# Conflicts:
#	apps/openmw/engine.cpp
#	apps/openmw/mwclass/npc.cpp
#	components/misc/rng.cpp
#	components/sceneutil/lightcontroller.cpp
#	libs/openengine/CMakeLists.txt
2018-10-05 18:53:47 +10:00
dteviot
4b0aeb4066 consolidate random number logic
Note, I suspect Rng::rollClosedProbability() is not needed.  The only difference between it and rollProbability() is that one time in 37k (on Windows), it will give an output of 1.0.
On some versions of Linux, the value of 1.0 will occur about 1 time in 4 billion.

(cherry picked from commit 3f28634d1f)

# Conflicts:
#	apps/openmw/mwclass/creature.cpp
#	apps/openmw/mwclass/npc.cpp
#	apps/openmw/mwgui/pickpocketitemmodel.cpp
#	apps/openmw/mwgui/waitdialog.cpp
#	apps/openmw/mwmechanics/combat.cpp
#	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
#	components/CMakeLists.txt
#	libs/openengine/misc/rng.cpp
2018-10-05 18:45:57 +10:00
Andrei Kortunov
87394f2ebb Revert "Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437)"
This reverts commit 09427d3f5e since the
fix is not entirely correct.
2018-09-29 16:21:40 +04:00
Marc Zinnschlag
38758a9555 Merged pull request #1944 2018-09-29 11:16:14 +02:00
Capostrophic
f20f49daa6 Content selector: allow to copy paths to clipboard (feature #2847) 2018-09-29 02:09:13 +03:00
Andrei Kortunov
43c7438e8e Move WeakCache to components/misc 2018-09-28 16:47:47 +04:00
Kyle Cooley
7eb1b14b21 Periodically prune empty elements in weak cache 2018-09-27 13:14:59 +04:00
Kyle Cooley
031502b2ab Reorganize ActorAdapter data, use weak cache for sharing 2018-09-27 13:14:59 +04:00
Kyle Cooley
6bece13a32 Use new Log class for error message 2018-09-27 13:14:59 +04: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
43880ca47b Merged pull request #1919 2018-09-27 11:06:00 +02:00
Andrei Kortunov
0176ee389e Handle length of UTF-8 strings properly in plugin metadata (bug #4653) 2018-09-25 21:40:26 +04:00
Andrei Kortunov
bce8de5fe9 Respect selected encoding in the content selector (bug #4467) 2018-09-25 21:39:18 +04:00
David Cernat
f100a660d4 [General] Fix ranged attack sync when using last throwing weapon or ammo 2018-09-24 11:30:53 +03:00
Capostrophic
92259c6cca Discard count arguments for AddSoulGem and RemoveSpell (bug #3762) 2018-09-23 22:30:06 +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
Marc Zinnschlag
7be9f2ca45 Merged pull request #1891 2018-09-21 11:38:19 +02:00
David Cernat
db39c62e89 [Documentation] Update credits 2018-09-21 10:23:54 +03: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
276b7830a9 Mass potion creation (feature #4642) 2018-09-20 15:45:14 +04:00
David Cernat
b5f46ada73 [General] Synchronize projectile speed for ranged attacks
This is done by including the final attackStrength used for ranged attacks in packets and then applying it in WeaponAnimation::releaseArrow() on other clients.
2018-09-18 01:13:48 +03:00
Andrei Kortunov
70ed8fd1a9 Use constants instead of widely used magic numbers (task #4645) 2018-09-17 19:22:50 +04:00
Marc Zinnschlag
06b2a23e74 Merged pull request #1768 2018-09-17 12:10:21 +02:00
Marc Zinnschlag
d76367918a Merged pull request #1907 2018-09-17 12:10:00 +02:00
Marc Zinnschlag
107165d36d Merged pull request #1923 2018-09-17 11:59:28 +02:00
Andrei Kortunov
2961f0d810 Allow to use the %Name for creatures (bug #4644) 2018-09-16 21:53:28 +04:00
Capostrophic
95aa05e41b Tweaks to script parser messages and pathgrid warnings 2018-09-16 16:47:33 +03:00
Andrei Kortunov
09427d3f5e Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437) 2018-09-16 14:38:58 +04:00
Capostrophic
363516049d Actually fix General number formatting 2018-09-14 18:38:24 +03: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
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
Andrei Kortunov
f0919f51e9 Fix integer result formatting of scripting functions 2018-09-11 14:05:44 +04:00
David Cernat
fcd31bf4a6 [General] Fix problems with the synchronization of ranged attacks
Projectile hits now send Attack packets with RANGED attacks, and their success or failure is now synchronized.

Strike enchantments no longer require a valid victim to be synchronized.

Additional debug messages have been added for attacks.
2018-09-11 11:56:45 +03:00
Andrei Kortunov
c2c24a76a4 Handle MyGUI exceptions inside destructors 2018-09-11 11:11:27 +04:00
Andrei Kortunov
aca6625af4 Avoid possible memory leak by using the unique_ptr 2018-09-11 11:11:27 +04:00
Andrei Kortunov
a262e4b342 Print warning, if can not close or remove temporary file 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
David Cernat
8012d0d7b7 [General] Include hit position in PlayerAttack and ActorAttack packets 2018-09-08 05:29:49 +03:00
Andrei Kortunov
5693ceca74 Remove redundant declaration 2018-09-04 17:56:19 +04:00
Capostrophic
65ff346b61 Make NPC record reputation, disposition and faction rank have unsigned char type 2018-09-03 16:45:38 +03:00
Andrei Kortunov
7e2bda459b Check if there are textures in FlipController to avoid division by zero (bug #4614) 2018-09-02 17:36:37 +04:00
Marc Zinnschlag
78a84042ad Merged pull request #1901 2018-09-01 11:08:24 +02:00
Capostrophic
7ef6fa9f61 Remove deprecated GMST get* functions 2018-08-29 18:38:12 +03:00
Andrei Kortunov
b0ac0b0b22 Do not initialize map every call 2018-08-29 16:47:12 +04:00
Marc Zinnschlag
24ce8cce72 Merged pull request #1898 2018-08-29 12:04:52 +02:00
Andrei Kortunov
0ddd0e4edc Fix light flicker amplitude calculation 2018-08-28 14:57:11 +04:00
Andrei Kortunov
c677f7ca27 Rework pulsing light sources (bug #4615) 2018-08-28 14:57:08 +04: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
Marc Zinnschlag
232ea4f793 Merged pull request #1887 2018-08-27 12:52:30 +02:00
Sophie Kirschner
c412f99963 Remove commented lines in UnrefWorkItem::doWork 2018-08-26 11:08:06 +03:00
Marc Zinnschlag
327f36b081 Merged pull request #1876 2018-08-26 09:15:38 +02:00
Andrei Kortunov
ff241fb787 Optimize skinning (task #4605) 2018-08-25 20:45:59 +04:00
Sophie Kirschner
4dd9386c4f Fix error: member access into incomplete type 'SceneUtil::UnrefWorkItem'
Fixes compile error encountered on OSX 10.9 with g++

sophie:build pineapple$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix

The compilation error:

[ 24%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwrender/renderingmanager.cpp.o
In file included from /Users/pineapple/git/openmw/apps/openmw/mwrender/renderingmanager.cpp:1:
In file included from /Users/pineapple/git/openmw/apps/openmw/mwrender/renderingmanager.hpp:4:
/Users/pineapple/git/openmw/openmw-deps/include/osg/ref_ptr:35:36: error: member access into incomplete type 'SceneUtil::UnrefWorkItem'
        ~ref_ptr() { if (_ptr) _ptr->unref();  _ptr = 0; }
                                   ^
/Users/pineapple/git/openmw/./components/sceneutil/unrefqueue.hpp:14:11: note: in instantiation of member function
      'osg::ref_ptr<SceneUtil::UnrefWorkItem>::~ref_ptr' requested here
    class UnrefQueue : public osg::Referenced
          ^
/Users/pineapple/git/openmw/./components/sceneutil/unrefqueue.hpp:10:11: note: forward declaration of 'SceneUtil::UnrefWorkItem'
    class UnrefWorkItem;
2018-08-24 16:41:52 +03:00
Andrei Kortunov
a560a9e00d Allow messageboxes arguments to have newline characters (bug #3836) 2018-08-24 15:48:18 +04:00
AnyOldName3
db707a31ec Add clipping planes when allow shadow map overlap is enabled 2018-08-23 13:14:02 +01:00
AnyOldName3
25e92481f4 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-08-21 14:00:58 +01:00
AnyOldName3
15e820825f Fix another convex hull clipping issue and restore z-clipping 2018-08-21 14:00:29 +01: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
Capostrophic
a06c9c767d Treat <> and << operators as < and >< and >> as > in scripts
(bug #4597)
2018-08-19 18:40:33 +03:00
Marc Zinnschlag
dc9aedca7d Merged merge request !33 2018-08-18 12:08:05 +02:00
AnyOldName3
3ce96997d1 Remove sneaky tabs. 2018-08-18 00:09:40 +01:00
AnyOldName3
80082308f0 Merge upstream (shadermanager log system revamp) 2018-08-17 18:22:13 +01:00
AnyOldName3
dd501f4132 Make ConvexHull::clip more resilient against large values. 2018-08-17 17:47:52 +01:00
AnyOldName3
987306feb9 Fix ConvexHull::extendTowardsNegativeZ 2018-08-16 23:48:19 +01:00
Bret Curtis
dcd381049c
Merge pull request #1872 from akortunov/extended_logging
Use new logging system
2018-08-16 11:38:29 +02:00
Andrei Kortunov
c7a5548475 Use new logging system for editor 2018-08-14 20:01:09 +04:00
Andrei Kortunov
1452684d9e Use new logging system for components 2018-08-14 19:42:41 +04:00
Bret Curtis
c0e50b2c02
Merge pull request #1865 from elsid/material_race_condition
Fix race condition (bug #4584)
2018-08-14 10:29:58 +02:00
Andrei Kortunov
9a5b016293 Move crashcatcher initialization to components 2018-08-14 11:17:05 +04:00
Andrei Kortunov
5e172ed831 Move cerr initialization out of 'try' block 2018-08-14 10:30:27 +04:00
James Carty
1c49698053 Implement 'g' flag 2018-08-13 20:31:11 +01:00
Bret Curtis
61b34124e2
Merge pull request #1847 from akortunov/extended_logging
Improve console logging
2018-08-13 10:19:25 +02:00
James Carty
579f35511a Add support for scietific notation flag for MessageBox 2018-08-12 22:45:03 +01:00
Andrei Kortunov
7d6e3673e0 Implement advanced logging system (feature #4581) 2018-08-12 13:38:15 +04:00
elsid
c2b8c7086a
Fix race condition
Values are accessed from main thread and cell preloader threads.
2018-08-12 01:06:58 +03:00
elsid
2de38142e2
Replace raw pointers by unique_ptr 2018-08-11 18:00:52 +03:00
elsid
f2a63bcf35
Add unit tests for BulletNifLoader 2018-08-11 18:00:52 +03:00
elsid
6afc1dc3a0
Support build with coverage for components and test suite 2018-08-11 17:24:40 +03:00
Marc Zinnschlag
b67b17010d Merged pull request #1826 2018-08-10 12:21:49 +02:00
Andrei Kortunov
ec9a1b0d05 Handle RootCollisionNode, attached to non-root node (bug #4311) 2018-08-10 11:11:40 +04: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
Bret Curtis
03bf599426
Merge pull request #1856 from Capostrophic/hidden
Revert untextured shapes rendering changes
2018-08-09 12:36:03 +02:00
Capostrophic
348c6f848e
Fix a bunch of MSVC warnings 2018-08-09 02:27:33 +03:00
AnyOldName3
3b3721897d Make indoor shadows disableable. 2018-08-08 23:56:11 +01:00
AnyOldName3
a2b54714d4 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-08-08 23:28:06 +01:00
AnyOldName3
6286f5a1d4 Ensure RigGeometry child geometries have sensible bounds without actually computing them. 2018-08-08 23:24:57 +01:00
Capostrophic
85208eff7f Revert untextured shapes rendering changes 2018-08-08 21:10:00 +03:00
Capostrophic
bda23c6ad6 Fix nodemask 2018-08-07 20:49:10 +03:00
Capostrophic
a1e3b2e586 Don't render NiTriShapes without NiTexturingProperty (bug #4483) 2018-08-05 16:24:24 +03:00
Andrei Kortunov
1f4dd3b393 Make partial binary search case insensitive, as it supposed to be (bug #4558) 2018-08-05 13:26:12 +04: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
Marc Zinnschlag
452a706047 Merged pull request #1837 2018-08-04 10:26:44 +02:00
Andrei Kortunov
e2519226aa Move boost include 2018-08-03 17:04:07 +04:00
Andrei Kortunov
c2a175c2e0 Move crash catcher wrapper to separate file 2018-08-03 15:51:17 +04:00
Andrei Kortunov
ac98797999 Add missing file 2018-08-03 15:05:13 +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
Andrei Kortunov
369ea7e177 Check if a temporary file was successfully closed 2018-08-01 20:36:29 +04:00
Andrei Kortunov
12144de8ed Initialize missing variables 2018-08-01 20:18:37 +04:00
AnyOldName3
cc23a968d1 Merge upstream/master 2018-08-01 14:13:45 +01:00
AnyOldName3
71778e2552 Disable convex hull clipping based on render leaf traverser results in the z direction. 2018-07-31 23:42:44 +01:00
AnyOldName3
02ab3b466a Use simplified convex hull clipping maths from the other function doing hte same thing 2018-07-31 23:30:15 +01:00
Andrei Kortunov
469bb29621 Do not try to handle shape controllers as node controllers 2018-07-30 21:45:17 +04:00
David Cernat
8c40010c87 [General] Add missing inventoryBaseId to creatures in RecordDynamic 2018-07-30 10:59:03 +03: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
Andrei Kortunov
7e0df01c83 Do not optimize animated shapes (bug #3950) 2018-07-28 16:48:57 +04:00
David Cernat
2dbf3893c0 [General] Compress item refIds in PlayerEquipment packets 2018-07-28 01:50:44 +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
c3ff273a22 [General] Add getVectorSize() and resetVector() to Utils 2018-07-26 20:01:58 +03:00
David Cernat
b4802e4201 [General] Use Time struct for time in BaseWorldstate 2018-07-26 19:01:27 +03:00
David Cernat
a4b588d1b5 [General] Add optional timestamps to journal entries in PlayerJournal 2018-07-26 04:36:12 +03:00
David Cernat
ea8a41160c [General] Make ActorAttack packet consistent with PlayerAttack
Additionally, fix a typo in PlayerAttack where a boolean argument was outside of the parentheses it should have been in.
2018-07-24 22:43:00 +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
63a86f145d [Client] Record type of each InterpreterContext for later checking 2018-07-23 00:46:07 +03:00
David Cernat
3165c84db4 [General] Rework PACKET_ORIGIN enum
Additionally, comment out reading of originClientScript in ObjectPacket for now.
2018-07-22 22:43:40 +03:00
David Cernat
9e6459043b [General] Fix typo related to originClientScript in ObjectPacket 2018-07-22 20:29:27 +03:00
David Cernat
3dc2d1b214 [General] Add packetOrigin and originClientScript to ObjectList packets
Additionally, add script functions for getting the packetOrigin and originClientScript of received ObjectList packets.
2018-07-22 18:38:05 +03:00
David Cernat
715cac807d [General] Add compareFloats to Utils 2018-07-22 15:23:23 +03:00
David Cernat
cb6c37a26d [General] Replace doubles with floats in BaseStructs and BaseWorldstate 2018-07-22 14:20:20 +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
20e0100706 [General] Rework Attack packets and add synchronization for item magic 2018-07-21 14:41:27 +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
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
David Cernat
9823a77bf2 [General] Turn PlayerRegionAuthority into WorldRegionAuthority
WorldRegionAuthority is a Worldstate packet.
2018-07-17 09:21:13 +03:00
David Cernat
72d286473b [General] Move credits integrity error message to new ErrorMessages file
Additionally, use correct log level for credit integrity message on server.
2018-07-16 03:21:14 +03:00
David Cernat
0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 2018-07-16 02:20:43 +03:00
David Cernat
646111d998 [General] Use correct credits checksum and move it to Version.hpp 2018-07-16 01:05:56 +03:00
David Cernat
22b2b7a9c6 [General] Add Utils methods for checksums 2018-07-15 22:39:57 +03:00
Nikolay Kasyanov
21f198af7a Fix debugger detection on macOS (#4511) 2018-07-15 12:36:01 +02: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
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
ae55ee7f0b [General] Add getNumberOfDigits to Utils in components 2018-07-14 23:51:49 +03:00
Grim Kriegor
2fcde5e8ba [General] Temporarily disable the new OpenMW crash catcher
This new crash catcher is preventing TES3MP from building on GNU/Linux
`components/crashcatcher/crashcatcher.cpp:23:28: fatal error: SDL_messagebox.h: No such file or directory`
Disable it until the developers isolate the issue and patch it
2018-07-14 19:46:47 +01: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
528bd26a3b [General] Allow followers to follow non-authority players through cells 2018-07-13 21:27:29 +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
bdf2f03c4f [General] Remove unnecessary MapChanges struct from BaseWorldstate 2018-07-12 05:06:31 +03:00
David Cernat
ceea65f666 [General] Change pre-rewrite's version to 0.7.0-alpha 2018-07-11 19:35:28 +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
elsid
3f21c49479
Put check for nif file name into separate function 2018-07-10 23:46:06 +03:00
elsid
2599aba196
Fix check whether file name starts with x or X
If path doens't contains / or \, then slashpos will be 0.
Therefore slashpos + 1 = 1 doesn't point to first symbol.

xmesh.nif
 ^
 slashpos + 1
2018-07-10 23:46:06 +03: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
c921d1c7e9 Refactor NifStream class (eliminate LNK4221 MSVC warning) 2018-07-10 13:32:52 +04:00
Andrei Kortunov
16a4df25d6 Make void function to do not return value 2018-07-10 09:36:39 +04: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
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
David Cernat
3ed9d89280 [General] Use separate variables for video & music filenames in packets 2018-07-07 14:40:35 +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
32ad8ef2f0 [General] Fix incorrect capitalization in ObjectMove directives 2018-07-05 06:07:10 +03:00
David Cernat
bbb461a5e5 [General] Make sure data in guiMessageBox is compressed 2018-07-05 02:56:32 +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
79903c455c [General] Allow different types for vectorContains 2018-07-04 01:31:45 +08:00
Koncord
1f4e6e9114 [General] Add integrity checks to Handshake packet 2018-07-03 18:41:03 +08:00
Koncord
f9ff5f10df [General] Reduce packets size and add integrity checks 2018-07-03 18:41:03 +08:00
Koncord
fa2bf0663e [General] Simplify vectorContains 2018-07-03 18:41:03 +08:00
Koncord
c69819e0db [General] Change type of refNumIndex & mpNum to unsigned 2018-07-03 03:34:30 +08:00
Koncord
99158beb2e [General] Change effectCount type to unsigned 2018-07-03 03:32:46 +08:00
Koncord
895634cd16 [General] Change type of MpNum to "unsigned int" 2018-07-03 03:25:54 +08:00
Koncord
779f2a564d [General] Change "unsigned long" to uint32_t for cross platform compatibility 2018-07-03 03:04:41 +08:00
Koncord
23684489da [General] Fix clang-tidy warning
Converting integer literal to bool, use bool literal instead
2018-07-03 02:50:21 +08:00
Koncord
7639db02f3 [General] RW functions return true on success 2018-07-03 02:28:20 +08:00
Koncord
45c7c3a0b6 [General] Add integrity checks to PacketPreInit 2018-07-03 02:21:36 +08:00
Koncord
d999cc0d55 [General] Add packetValid flag to packets 2018-07-03 02:06:52 +08:00
Koncord
695fb7d4a7 [General] Reorder RW(string) arguments
Change limit of default max string size to 64 KiB
2018-07-03 01:12:59 +08:00
Koncord
d162f6fd3a [General] Explicitly use limitations of the master server 2018-07-02 23:29:07 +08:00
Koncord
a48d5b48ef [General] Add maxSize parameter to RW(std::string)
Minor type changes
2018-07-02 23:19:39 +08: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
958b220835 [General] Send summon duration to server in ObjectSpawn packets 2018-07-01 00:43:29 +03:00
AnyOldName3
85aba2e1da Add toggleable shadow debug overlay. 2018-06-28 17:24:36 +01: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
c7f10892a9 [General] Add vectorContains util for checking strings in vectors 2018-06-28 04:50:01 +03: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
David Cernat
914b79fcc9 [General] Make it possible to check which placed objects have containers 2018-06-26 16:56:08 +03:00
Andrei Kortunov
359e748c28 Initialize some missing fields in constructors 2018-06-25 09:35:42 +04:00
David Cernat
d53bd05424 [General] Use slightly larger maximum imageData size in WorldMap packets 2018-06-23 14:37:47 +03:00
David Cernat
5bb2ba1e9e [General] Limit maximum imageData size in WorldMap packets 2018-06-23 02:33:34 +03:00
AnyOldName3
f8e4f3fca5 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2018-06-22 00:11:29 +01: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
3ebebdf3c1
Merge pull request #1751 from wareya/terrainbleeding
Fix #4452
2018-06-20 10:20:11 +02:00
AnyOldName3
553094669b Merge upstream/master (& fix merge conflicts) 2018-06-20 00:11:23 +01:00
AnyOldName3
ed68db5ef9 Fix issue where the camera frustum cropping wouldn't consider where casters might cast shadows, just where they actually were. 2018-06-19 23:48:59 +01:00
Bret Curtis
c1eb9042b3
Merge branch 'master' into terrainbleeding 2018-06-19 13:40:14 +02:00
Andrei Kortunov
5fd3ec1035 Implement unlockable locks with 'lock 0' console command 2018-06-19 14:17:33 +04:00
Nikolay Kasyanov
75d79e98b9 Force software decompression if OPENMW_DECOMPRESS_TEXTURES is set 2018-06-16 12:38:16 +02:00
Nikolay Kasyanov
359f87ab9f Change imageToSurface to return a unique_ptr to avoid manual surface cleanup 2018-06-16 12:12:32 +02:00
Miloslav Číž
2a23b53515 Merge branch 'drummyfish/openmw-toggleborders' 2018-06-14 15:33:08 +02:00
Miloslav Číž
477e1437d2 Resolve conflicts 2018-06-14 15:30:28 +02:00
Miloslav Číž
34f8eca7bd Fix indent 2018-06-14 13:43:32 +02:00
Miloslav Číž
ab8de9fa14 Set node mask to cell borders 2018-06-14 13:18:37 +02:00
Miloslav Číž
414e6caafe Make tb work with distant terrain 2018-06-14 13:14:38 +02:00
Miloslav Číž
f18d57429e Move cell border management to World 2018-06-14 12:27:22 +02:00
Miloslav Číž
1b8d500c07 Make tb command work again 2018-06-14 12:01:09 +02:00
Miloslav Číž
1fd5ad3e56 Use REAL_SIZE constant 2018-06-14 01:01:22 +02:00
Miloslav Číž
d629c30fdb
Merge branch 'master' into screenshot360 2018-06-13 21:16:28 +02:00
Bret Curtis
a747318c90
Merge branch 'master' into terrainbleeding 2018-06-13 09:20:49 +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
wareya
94f695cffc Fix #4452 and remove dead code 2018-06-12 21:04:27 -04:00
Miloslav Číž
db8aaa74d6 Start cell border debug drawing 2018-06-13 01:48:31 +02:00
Nikolay Kasyanov
224b94c0ce Decompress cursors using SDL software renderer on Mac or if OSG >= 3.5.8 2018-06-12 20:32:02 +02:00
AnyOldName3
f5b144ef77 Improve bounds calculation for shadow casters outside of the viewing frustum 2018-06-12 17:04:56 +01:00
Marc Zinnschlag
565922f9ad naked expressions beginning with the member operator were allowed erroneously outside of the console (Fixes issue #2971) 2018-06-12 17:52:16 +02:00
Marc Zinnschlag
8d0f717e72 Merged pull request #1739 2018-06-12 17:04:41 +02:00
Marc Zinnschlag
90febde783 Merged pull request #1742 2018-06-12 17:03:38 +02:00
Marc Zinnschlag
816a1733dc Allow comma after Begin and End script instruction (Fixes #4451) 2018-06-12 15:29:28 +02:00
Andrei Kortunov
acd3cba5fa Store previous items in the savegame 2018-06-10 16:21:19 +04:00
wareya
7344323b9e remove indentation from blank lines 2018-06-09 10:31:51 -04:00
wareya
8f45b0d53a remove unnecessary conditions 2018-06-09 10:11:43 -04:00
Andrei Kortunov
fba0c155df Fix assertion fail related to NiLookAtController 2018-06-09 17:07:38 +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
efb4abbb7f Merged pull request #1623 2018-06-09 10:49:04 +02:00
wareya
6277f5511c fix #3876 and #3993 2018-06-08 17:52:46 -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
fed10e87aa Store integer actor ID in AI packages (bug #4036) 2018-06-08 19:57:41 +04:00
Andrei Kortunov
2fada94879 Improve MRK NiStringExtraData handling (bug #4419) 2018-06-08 15:44:35 +04: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
494edbe5cb [General] Add REPLY_TO_REQUEST container sub-action 2018-06-05 14:16:27 +03:00
David Cernat
c24157f6f9 [General] Fix CMakeLists in components for BaseObject 2018-06-05 13:14:52 +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
13f7b53b1c Revert "Don't force DDS file usage (fixes #1392)"
This reverts commit 90f3ff2da4.
2018-06-04 17:08:09 +02:00
Bret Curtis
4a2b973052
Merge pull request #1726 from elsid/fix_catch_warnings
Fix warnings: catching polymorphic type by value
2018-06-02 19:36:04 +02:00
Capostrophic
eecde340cf Make weapon health short unsigned (fixes #4435) 2018-06-02 15:44:59 +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
AnyOldName3
50fdd0be99 Resolve computed near plane issues with extremely high viewing distances. 2018-05-29 00:52:43 +01:00
AnyOldName3
759e6fb804 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-05-27 15:41:42 +01: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
Thunderforge
c2fff61ccd Changing so that data changes happen only after the addon is checked 2018-05-26 20:35:28 -05:00
David Cernat
416ee77639 [General] Add placeholder for WorldCollisionOverride packet 2018-05-25 07:09:32 +03:00
David Cernat
49ea76aa9d [General] Add notes for InputDialogs in GUIBoxes packet 2018-05-25 05:28:22 +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
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
David Cernat
46744ee90f [General] Make WorldTime script functions more consistent with others 2018-05-24 09:38:06 +03:00
Marc Zinnschlag
810e4416f6 Merged pull request #1691 2018-05-23 16:56:36 +02:00
Marc Zinnschlag
d92d754834 Merged pull request #1697 2018-05-23 16:01:11 +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
f01c761cb1 [General] Use correct orderChannel for WorldTime packets 2018-05-23 07:51:18 +03:00
David Cernat
0be6de6607 [General] Turn RecordDynamic into a Worldstate packet 2018-05-23 07:48:28 +03:00
Thunderforge
d58cce9c72 Adding WIP code to dynamically change the autocomplete fields 2018-05-22 20:50:31 -05: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
Andrei Kortunov
888c2d9a33 Render default land texture for Wilderness cells with distant terrain 2018-05-22 12:40:01 +04:00
David Cernat
5af1150ab2 [General] Turn GameTime into a Worldstate packet 2018-05-21 07:14:08 +03:00
AnyOldName3
2c30bc1b4f Accidentally fix the one remaing case where shadows look awful while refactoring some stuff. 2018-05-18 22:39:57 +01:00
David Cernat
43a944ddaf [General] Add and implement new Worldstate packet type 2018-05-18 06:40:28 +03:00
AnyOldName3
9f0a49c303 Disable CSM when disabled in the settings. 2018-05-17 20:27:10 +01:00
AnyOldName3
84284a60a7 Make CSM shader changes controllable by the setting. 2018-05-17 17:35:55 +01:00
AnyOldName3
5d05aadb37 Begin to let settings toggle between CSM and PSSM 2018-05-17 16:57:01 +01:00
David Cernat
049d0d9ba7 [General] Fix remaining references to world packets/events 2018-05-17 00:08:37 +03:00
AnyOldName3
7255c266ba Merge branch 'osgshadow-test-vdsm' into osgshadow-test-dicking-around-with-cascading-shadow-maps 2018-05-16 21:21:05 +01:00
AnyOldName3
fc1aee10f4 Remove function declaration that somehow snuck in. 2018-05-16 21:20:17 +01:00
AnyOldName3
1b30d47d7f Add a hacky temporary version of cascading shadow maps 2018-05-13 12:56:40 +01: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
AnyOldName3
44b2cf2b7f Merge upstream. 2018-05-11 19:15:04 +01:00
AnyOldName3
166e7df778 Improve debug HUD frustum 2018-05-11 19:08:42 +01:00
Marc Zinnschlag
b7cce1a665 Merged pull request #1702 2018-05-11 10:11:17 +02:00
Alf Henrik Sauge
d4f278a113 Replacing tab with spaces 2018-05-09 18:02:02 +02: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
1dd36329a3 Load default markers definitions (bug #4410) 2018-05-05 17:14:33 +04:00
tri4ng1e
f5b7a230fc
ESMReader::close now clears mHeader 2018-05-05 14:40:58 +03:00
AnyOldName3
4547151863 Add the view frustum to the debug HUD (in the most annoying way possible) 2018-05-05 00:08:00 +01:00
Marc Zinnschlag
69c659852d Merge pull request #1689) 2018-05-03 13:03:42 +02:00
Andrei Kortunov
6cc7405194 Remove unnecessary command from QuadTreeWorld destructor (bug #4408) 2018-04-30 18:29:26 +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
f4cd7ff5b2
Merge pull request #1690 2018-04-29 14:24:56 +00:00
Capostrophic
d967983f5c Assume Morrowind.esm dependency for dependency-less content addons (fixes #2829) 2018-04-29 14:56:38 +03:00
Andrei Kortunov
5afcc56860 Handle NiLookAtController (feature #4407) 2018-04-29 09:24:13 +04:00
David Cernat
66d5109509 [General] Fix information exchange for players sharing a cell
Previously, two players entering the same cell only sent and received their latest changes for dynamic stats, attributes, skills and equipment when they started sharing that cell.
2018-04-26 21:56:14 +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
scrawl
55a6344fb0
Revert log spam 2018-04-22 15:41:25 +00: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
Evgeny Kurnevsky
48fb6bb9e8
Fix crash when rollDice is called with 0. 2018-04-21 16:46:36 +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
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
7b702bf8c2 [General] Add and use utility function for int value checks in vectors
(cherry picked from commit a796f81444)
2018-04-19 18:16:10 +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
scrawl
1f1f47431f
Merge pull request #1672 2018-04-19 13:36:40 +00:00
Capostrophic
48467814d4 Improve random number generation 2018-04-19 15:55:26 +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
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
scrawl
ce1b2a612c
Merge pull request #1674 2018-04-18 15:56:22 +00: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
Capostrophic
90f3ff2da4 Don't force DDS file usage (fixes #1392)
Fallback to a DDS file if the requested texture path doesn't point to an existing file, not vice versa
2018-04-18 17:55:12 +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
scrawl
6c79c0fb35
Add an empty compileGLObjects implementation to Rig/MorphGeometry to avoid unnecessary creation of display list done by osg 2018-04-18 12:36:08 +00:00
Andreas Sturmlechner
2c9d46a60b
Fix build with Qt 5.11_beta3 (dropping qt5_use_modules) 2018-04-17 23:03:56 +02:00
David Cernat
70f9cb535e [General] Use RecordHelper methods to create and update DedicatedPlayers 2018-04-13 08:37:06 +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
scrawl
ef050d7869
Merge pull request #1660 2018-04-09 20:23:27 +00:00
David Cernat
bdc9132e7c [General] Add SetResetStats server script function
Add reading and writing of resetStats variable to PlayerBaseInfo Packet

Fix typos in various server script function descriptions
2018-04-09 19:24:24 +03:00
David Cernat
73dea494c4 [General] Allow changes from PlayerBaseInfo without player stat reset 2018-04-09 19:21:19 +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
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
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
scrawl
e73af18824
Merge pull request #1653 2018-04-02 17:29:04 +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
Capostrophic
1aa3ed0c18 Font loader fallback character reorganization (fixes #1987) 2018-03-31 20:16:44 +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
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
Capostrophic
be542507f8
Make hasMaster() behavior consistent with isGameFile() (fixes #3618) 2018-03-28 15:43:51 +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
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
scrawl
eb723f5ae6
Merge pull request #1629 2018-03-16 23:26:50 +00:00
Capostrophic
002ad9ae1b Print a warning in case a fallback value wasn't found 2018-03-14 00:25:56 +03:00
Capostrophic
e4531a6910 Use middle gray instead of pure black as default fallback color (Fixes #2841) 2018-03-12 23:38:59 +03: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
b7c6261e16 Merge pull request #392 from OpenMW/master while resolving conflicts
# Conflicts:
#	README.md
2018-03-09 21:07:46 +02:00
scrawl
e81faf5f2f
Add an option to disable GUI keyboard navigation (Bug #4333) 2018-03-08 23:39:35 +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
AnyOldName3
e885612bd7 Make a dynamic cast static 2018-03-03 02:05:46 +00:00
AnyOldName3
b553b58de5 Fix another compiler warning 2018-03-03 02:03:16 +00:00
AnyOldName3
3bed2a7b01 Fix some copiler warnings (hopefully) 2018-03-03 02:01:03 +00:00
AnyOldName3
fc41902798 Replace a dynamic cast with string comarison 2018-03-01 14:37:11 +00:00
AnyOldName3
bc4b4c66e4 (Hopefully) add include which G++ requires even though VC++ doesn't. 2018-02-27 16:54:48 +00:00
AnyOldName3
d1a2955fa1 Merge upstream 2018-02-27 14:29:14 +00:00
AnyOldName3
66a114d6ec Fix a couple of warnings 2018-02-27 14:15:06 +00:00
AnyOldName3
f9cf1ac94b Separate indoor and outdoor shadow casting masks. 2018-02-27 00:13:51 +00:00
AnyOldName3
35eb71052e Tidy up the shadow manager 2018-02-26 23:52:46 +00:00
AnyOldName3
882b63cba9 Make split point control parameters configurable with the new shadow technique. 2018-02-26 23:00:46 +00:00
AnyOldName3
e233dae1cd Hook up the new shadow technique 2018-02-26 22:27:09 +00:00
AnyOldName3
97b607fc66 Make whitespace match upstream OSG 2018-02-26 21:10:06 +00:00
AnyOldName3
99db93510c Undo minor cockup where the same file appeared twice 2018-02-26 21:09:29 +00:00
AnyOldName3
639a4f5e8c Remove TODO left in by accident. Also, become 100 commits ahead of upstream. 2018-02-26 20:52:19 +00:00
AnyOldName3
478367bef3 Ensure the debug HUD won't crash if settings are changed at runtime. 2018-02-26 20:50:54 +00:00
AnyOldName3
7b52091a82 Make the debug hud enableable 2018-02-26 20:36:43 +00:00
AnyOldName3
5d719e9d5f Add the debug HUD to the new shadow technique 2018-02-26 20:20:01 +00:00
AnyOldName3
76f23c28b1 Make shadows disableable. 2018-02-26 16:25:44 +00:00
AnyOldName3
0f1e770c53 Transfer changes to cull to new shadow technique 2018-02-26 15:51:22 +00:00
AnyOldName3
4c31b38f77 Move CLSB changes to new shadow technique 2018-02-26 14:58:12 +00:00
AnyOldName3
06b2ce6646 Fix alignment issues caused by renaming classes 2018-02-26 14:34:14 +00:00
AnyOldName3
02d0ee3485 Rename old shadow class to shadow manager 2018-02-26 14:29:31 +00:00
AnyOldName3
ce02c83089 Copy debug shader source into new shadow technique 2018-02-26 14:27:47 +00:00
Miloslav Číž
db6107f12f
Merge branch 'master' into screenshot360 2018-02-25 11:25:19 +01:00
AnyOldName3
7bd4c5e4b3 Change class name 2018-02-24 00:57:58 +00:00
AnyOldName3
c815366044 Move to the correct namespace part 2 2018-02-24 00:55:24 +00:00
AnyOldName3
11e59d3c11 Move to the correct namespace. 2018-02-24 00:52:46 +00:00
AnyOldName3
324b398d29 Add a notice clarifying the source of the shadow technique files. 2018-02-24 00:15:54 +00:00
AnyOldName3
7467248555 Undo a modification from the upstream shadow technique which breaks compatibiltiy with OSG 3.4 2018-02-24 00:14:29 +00:00
AnyOldName3
273914aba8 Add osgShadow ViewDependentShadowMaps as they can be found in OSG's GitHub Repository 2018-02-24 00:13:05 +00:00
AnyOldName3
9ec59783ba Add basic support for distant terrain CLSB
(cherry picked from commit 0f9dc3e65b72e6fff762f7a0933bae6f861e5fd4)
2018-02-23 23:37:04 +00:00
AnyOldName3
cb6767b4fc Move the declaration of ComputeLightSpaceBounds to the header so that it can be accessed from other compilation units.
(cherry picked from commit 8ac4fb208897a18da4934dd6f2fe84560b44ba9d)
2018-02-23 23:35:01 +00:00
AnyOldName3
6251e0519e Use CLSB results to reduce maximum shadow map distance when sensible. 2018-02-23 23:31:53 +00:00
David Cernat
60f686ee43 [General] Implement setting of physics framerate as part of GameSettings 2018-02-14 05:53:44 +02:00
David Cernat
65c3472772
Merge pull request #386 from OpenMW/master
Add OpenMW commits up to 13 Feb 2018, part 2
2018-02-13 22:22:22 +02:00
scrawl
9b8c56761b
Fix timing error 2018-02-13 18:25:28 +00:00
Alexander "Ananace" Olofsson
145b47a550
Fix Windows builds
`std::min`/`std::max` are part of algorithm, which is not implicitly included in Windows builds
2018-02-13 17:47:38 +01:00
David Cernat
53d758ba16
Merge pull request #385 from OpenMW/master
Add OpenMW commits up to 13 Feb 2018
2018-02-13 05:22:41 +02:00
scrawl
ac1609c433
Merge pull request #1604 2018-02-13 00:56:06 +00:00
scrawl
123f7b83d5
Make the CompositeMapRenderer use available time and add related setting 2018-02-13 00:40:41 +00:00
uramer
5502790ed9 removed the unnecessary comment 2018-02-09 16:34:55 +01:00
uramer
86c25f5dba Removed NIF flag handling to replicate vanilla engine behaviour 2018-02-09 01:53:52 +01:00
David Cernat
74765b3ace [General] Implement selected spell sync as part of PlayerMiscellaneous 2018-02-06 06:36:46 +02:00
David Cernat
029dfc56ba [General] Implement player scale as part of PlayerShapeshift 2018-02-01 02:11:45 +02:00
David Cernat
66078bfea7 [General] Implement Mark location sync as part of PlayerMiscellaneous 2018-01-31 04:50:29 +02:00
David Cernat
989f6e6b51 [General] Implement PlayerReputation packet 2018-01-30 22:55:29 +02:00
David Cernat
3d80e2db62 [General] Add placeholders for new packet types, part 2 2018-01-30 16:01:33 +02:00
David Cernat
273a1f50af
Merge pull request #377 from OpenMW/master
Add OpenMW commits up to 29 Jan 2018
2018-01-29 22:38:39 +02:00
David Cernat
02af7f6ba1 [General] Add placeholders for new packet types 2018-01-29 22:32:51 +02:00
scrawl
25a6a67508
Fix the optimizer messing up LOD node's children (Fixes #4301) 2018-01-29 19:44:12 +00:00
David Cernat
78df8c5ebe
Merge pull request #375 from OpenMW/master
Add OpenMW commits up to 29 Jan 2018
2018-01-29 02:36:48 +02:00
scrawl
89c6b59c30
Merge pull request #1602 2018-01-28 22:35:47 +00:00
David Cernat
420dab10e1 [General] Track objects directly placed by players in ObjectPlace
This allows the OnPCDrop variable to get set correctly even when object placements have to go through the server first in order to gain a unique multiplayer index (mpNum).

Among other things, this makes it possible to roll marijuana joints in the popular mod "Tribunal Code Patch".
2018-01-28 17:46:51 +02:00
David Cernat
613adf6b30 [General] Update version to 0.6.3 2018-01-27 23:36:25 +02:00
David Cernat
5d4b97645d Merge pull request #374 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/CMakeLists.txt
2018-01-27 22:52:59 +02:00
Ilya Zhuravlev
9e9f6f3132 loadtes3: don't pack() non-POD structs 2018-01-26 21:35:51 -05:00
AnyOldName3
9f20aaccfb Add some more advanced settings to control shadows. 2018-01-25 16:08:34 +00:00
AnyOldName3
6ec893b618 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-01-22 15:54:13 +00:00
AnyOldName3
112ade2a3f Ensure TerrainDrawables affect the computed near/far planes. 2018-01-22 15:52:37 +00:00
Ilya Zhuravlev
359910762d GraphicsWindowSDL2: support setting up GLESv2 context for android 2018-01-18 17:11:22 -05:00
Ilya Zhuravlev
a038327521 SDLCursorManager: fix possibly invalid read when no cursor present
On android we have no cursor so I moved the check closer to usage
2018-01-17 23:03:11 -05:00
David Cernat
28f47c4f81 [General] Update version to 0.6.2-hotfixed 2018-01-17 08:10:49 +02:00
David Cernat
9935f56d46 [General] Use doubles instead of ints for enchantmentCharge
Additionally, include enchantmentCharges for items  in PlayerEquipment packets.
2018-01-17 08:10:49 +02:00
Bret Curtis
588c1df0f0
Merge pull request #1599 from xyzz/android
Update android port.
2018-01-16 11:12:21 +01:00
Ilya Zhuravlev
d2121ccd62 Update android port. 2018-01-16 00:11:27 -05:00
scrawl
047c44f265
Ignore duplicate data directories to work around the fallout of (Fixes #3557) 2018-01-14 00:25:20 +00:00
scrawl
259919d125
Print a warning when an ambiguous file on a case-sensitive file system is found 2018-01-14 00:23:29 +00:00
Marc Zinnschlag
2dff3aab22 allow . and - in the name part of a begin script statement, but not at the beginning of a name. Fixes #4061 2018-01-12 16:37:06 +01:00
scrawl
bba9a8dd91
Don't update off-screen animations
Make flying creatures animate in-place when out of processing range
2018-01-11 01:49:35 +00:00
David Cernat
a818140c14
Merge pull request #365 from OpenMW/master
Add OpenMW commits up to 2 Jan 2017
2018-01-04 12:12:18 +02:00
AnyOldName3
bf9a1ded63 Mark a function as override 2018-01-02 16:39:05 +00:00
David Cernat
65d978a3cb
Merge pull request #364 from OpenMW/master
Add OpenMW commits up to 1 Jan 2017
2018-01-02 07:50:37 +02:00
Bret Curtis
93f14c219c camelCase 2018-01-01 16:32:20 +01:00
Bret Curtis
7a7b040216 fix building on mips machines 2018-01-01 14:10:23 +01:00
scrawl
c920f95d1e
Don't incorrectly discard root node transformation (Fixes #4272) 2017-12-31 23:49:43 +00:00
AnyOldName3
c3e0398d1c Add settings 2017-12-27 02:32:17 +00:00
AnyOldName3
c192c851db Make disabling shadows disable their performance impact, too. 2017-12-26 23:51:50 +00:00
David Cernat
cac2c6c1e8 Merge pull request #360 from TES3MP/0.6.1-openmw-updates while resolving conflicts 2017-12-25 02:25:01 +02:00
David Cernat
993081ba1e [General] Add enchantmentCharge to worldObjects and items 2017-12-23 13:16:38 +02:00
AnyOldName3
b08938485f Make suspending viewer threads the responsibility of the caller, not the shader manager. 2017-12-17 23:55:19 +00:00
AnyOldName3
229cc9696f Make updating global shader defines update shaders. 2017-12-17 01:57:53 +00:00
AnyOldName3
8957c92a36 Switch to a more industry-standard shadow map splitting scheme 2017-12-17 00:52:10 +00:00
AnyOldName3
7cce2d6f87 Implement a more sensible shadow map cascading system 2017-12-12 22:37:40 +00:00
AnyOldName3
0e481a457e Merge remote-tracking branch 'refs/remotes/upstream/master' 2017-12-08 23:26:08 +00:00
David Cernat
c9c363ebef [General] Allow GameSettings to set bed & wilderness resting separately 2017-11-30 12:18:15 +02:00
David Cernat
e7f20e7daf Merge pull request #351 from OpenMW/master while resolving conflicts
# Conflicts:
#	CMakeLists.txt
#	README.md
2017-11-30 10:06:38 +02:00
scrawl
a4d8aef40d
Merge branch openmw-43 into master
Conflicts:
	CMakeLists.txt
	README.md
	files/mygui/openmw_trade_window.layout
2017-11-29 22:37:50 +00:00
David Cernat
3508a16836 [General] Use GameSettings packet to set ability to rest and wait 2017-11-27 07:39:02 +02:00
David Cernat
d06817a356
Merge pull request #347 from OpenMW/master
Add OpenMW commits up to 25 Nov 2017
2017-11-25 08:54:22 +02:00
AnyOldName3
974e4d5299 Add check for null shaders when releasing OpenGL objects 2017-11-24 22:43:40 +00:00
Andrei Kortunov
94c0e3ed10 Move toUpper() from StringUtils to the JournalViewModel 2017-11-23 19:37:45 +04:00
David Cernat
656453725b
Merge pull request #343 from OpenMW/master
Add OpenMW commits up to 23 Nov 2017
2017-11-23 04:51:13 +02:00
David Cernat
6668b9ab42 [General] Implement ConsoleCommand packet 2017-11-23 00:21:47 +02:00
AnyOldName3
98cd9fc144 Add preliminary support for global shader defines. 2017-11-22 20:07:07 +00:00
AnyOldName3
7a9df977c7 Add some prerequisits for making shadows disableable 2017-11-21 17:20:57 +00:00
AnyOldName3
166ba22072 Prevent line count changes within conditional blocks (because of conditional includes or @foreach expansion) ruining line numbering. 2017-11-21 16:53:12 +00:00
Andrei Kortunov
67acb83b62 Add missing include 2017-11-21 13:27:33 +04:00
Andrei Kortunov
5f41f7c48d Clean code up a bit 2017-11-21 13:03:38 +04:00
Andrei Kortunov
ba91cd658b Convert topic name to Unicode 2017-11-21 12:31:23 +04:00
Andrei Kortunov
f0ca3eabd3 Merge from upstream master 2017-11-21 09:39:54 +04:00
scrawl
9fda3b6db4 Fix NumericEditBox behavior broken by switch to std::stoi
For some reason stoi doesn't throw an error for '1foo' while 'foo1' does.

Now the edit box flat out rejects any non-digit key events.
2017-11-20 23:20:03 +00:00
Andrei Kortunov
a391990f2a Provide multibyte toLower() and single chars comparator 2017-11-20 21:30:46 +04:00
AnyOldName3
0f6f097cf2 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2017-11-17 18:24:08 +00:00
AnyOldName3
3d18ddc8e4 Take into account previous #line directives when expanding @foreach shader macros 2017-11-17 17:18:33 +00:00
Miloslav Číž
3ae5310567 use loading screen to freeze the screen 2017-11-16 22:08:33 +01:00
Alexander Stillich
93e9df15c9 Fixed parameter naming 2017-11-11 22:58:02 +00:00
Alexander Stillich
52b3507a2b Removed escape_hash_filter::mPrevious, removed usage of boost::replace_all 2017-11-11 22:58:02 +00:00
Alexander Stillich
09aac22782 Added StringUtil::replaceAll() 2017-11-11 22:58:01 +00:00
Alexander Stillich
92aaff3b78 Fixed escaping @ in boost program options filter 2017-11-11 22:57:59 +00:00
Miloslav Číž
e804c4a011 remove no longer used method 2017-11-11 13:54:14 +01:00
David Cernat
01db219de4
Merge pull request #333 from OpenMW/master
Add OpenMW commits up to 11 Nov 2017
2017-11-11 03:46:21 +02:00
scrawl
a5ba1caed1
Merge pull request #1541 from astillich/4189
Fixed escaping @ in boost program options filter
2017-11-10 23:08:54 +00:00
scrawl
a5adc5b018 Add NPC base skeleton files to the optimizer blacklist (Fixes #4159) 2017-11-10 22:51:32 +00:00
David Cernat
f2a6957e16 Merge pull request #331 from OpenMW/master while resolving conflicts 2017-11-10 08:43:50 +02:00
AnyOldName3
590531595b Create @foreach shader preprocessor macro in preparation for moving shadow setup out of shadermanager.cpp 2017-11-10 02:02:27 +00:00
Miloslav Číž
d763e9fe46 add settings for spherical screenshots 2017-11-09 20:25:29 +01:00
AnyOldName3
6e0b61d084 Add missing libraries to components target 2017-11-08 04:09:14 +00:00
AnyOldName3
e201e359a9 Move Shadow to Components 2017-11-08 01:44:49 +00:00
AnyOldName3
1a30a917af Merge upstream/master 2017-11-08 01:31:38 +00:00
AnyOldName3
aa31cbba4f Attempt (and fail) to make the local map show without unwanted shadow 2017-11-08 01:20:52 +00:00
scrawl
244cc5b861 Reduce error spam 2017-11-08 00:24:03 +00:00
scrawl
7b4add2ae4 Fall back to non-shader material if creating the shader fails
Also fixes an uncaught exception that will break the whole game.
2017-11-08 00:24:03 +00:00
Alexander Stillich
43b5c2e36b Fixed parameter naming 2017-11-07 23:20:10 +01:00
Alexander Stillich
70d578d050 Removed escape_hash_filter::mPrevious, removed usage of boost::replace_all 2017-11-07 23:10:58 +01:00
Alexander Stillich
af3e1f92ec Added StringUtil::replaceAll() 2017-11-07 23:06:23 +01:00
AnyOldName3
715f29165b Dynamically adjust shaders to have the required number of shadow maps. 2017-11-07 20:22:45 +00:00
Alexander Stillich
7d39c5450c Fixed escaping @ in boost program options filter 2017-11-05 22:14:16 +01:00
David Cernat
2ca4017371 [Client] Force position updates for players in animations 2017-11-01 22:00:54 +02:00
scrawl
ceaf0ee409 Enable shadow casting for terrain
Add a check to TerrainDrawable to make sure shadows are only drawn once, not once per blending pass
2017-10-31 21:21:05 +01:00
David Cernat
be25decee2 [General] Implement PlayerSpeech packet 2017-10-31 15:19:14 +02:00