Commit Graph

4807 Commits (ca67587b891285c05d91f6c323112a8e4bc0b169)

Author SHA1 Message Date
AnyOldName3 8482236a82 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 6 years ago
AnyOldName3 d82c85913a Don't bother multiplying a matrix by its inverse and applying that to the light direction.
Hopefully this will improve numerical stability and reduce shadow flicker a little.
6 years ago
AnyOldName3 4438ab4493 Use CullVisitor traversal mask for light manager. 6 years ago
Bret Curtis 8ddb45eb22
Merge pull request #2141 from akortunov/switchnode
Support NiSwitchNode
6 years ago
Andrei Kortunov 2c38e337ae Support NiSwitchNode (feature #4812) 6 years ago
Capostrophic c9df63ffd1 Replace BSAOpt hash calculation with a custom function 6 years ago
Capostrophic be5faadff8 Fix compressed BSA loading on non-Windows systems 6 years ago
Bret Curtis e1d7a8415d Merge branch 'bugfix/file-list-emptying-error' into 'master'
Fix error when create new OpenCS addon

Closes #4757

See merge request OpenMW/openmw!50
6 years ago
Bret Curtis 9cfc97a37a Merge branch 'tes4_bsa' into 'master'
Read BSA files in TES4 / TES5 formats

See merge request OpenMW/openmw!56
6 years ago
Bret Curtis 6fd4d016eb
Merge pull request #2132 from akortunov/particlefix
Fix an exception when try to load a particle node with empty sizes array
6 years ago
Azdul 7880e6f761 CompressedBSAFile::FileRecord::isCompressed implementation simplified.
Double space in CompressedBSAFile::FileRecord::getSizeWithoutCompressionFlag removed.
6 years ago
Azdul 6aa6b2dc89 Removed TES4 from file names. Correct Git file history / attribution. 6 years ago
Azdul a3bcd95546 Merge branch 'cc9cii' of https://github.com/cc9cii/openmw into tes4_bsa 6 years ago
Azdul 42ea609d1d Remove files with incorrect Git history / attribution 6 years ago
Frederic Chardon a78d98df27 Fix crashcatcher 6 years ago
Adam.Fandrejewski 777a50cb64 Replaced C++ 14 make_unique with C++ 11 compliant code 6 years ago
Azdul 0c3a3ea241 Strange issue with Linux compilation (<memory> header) 6 years ago
Azdul 4c499983ca Fixed warnings reported by GCC 6 years ago
Azdul d55cc4d3ea Linux requires <memory> header 6 years ago
Azdul caa0487c6a Replace raw pointer in BsaArchive with unique_ptr 6 years ago
Azdul e502819246 Proper conversion from shared_ptr<bsa::MemoryinputStream> to shared_ptr<std::istream> 6 years ago
Azdul b9a7514278 Memory leak fixed. Proper file names in headers. 6 years ago
Azdul c6fd979c42 Spaces instead of tabs in CMakeLists.txt 6 years ago
Azdul 96d19e07ca Fix Linux build 6 years ago
Azdul 25650e65bf Read any BSA file - detection based on version in BSA header 6 years ago
Andrei Kortunov 39c4a7833c Fix out of range exception when try to load a particle node with empty sizes array (bug #4804) 6 years ago
Capostrophic 166d757a19 Allow stray special characters before a begin statement 6 years ago
Bret Curtis 8834ee95be
Merge pull request #2120 from Capostrophic/macros
Get rid of some remaining instances of C numeric limits
6 years ago
Bret Curtis 590b393c8e
Merge pull request #2123 from akortunov/skinning
Optimize skinning, part 2
6 years ago
Bret Curtis 4617dea154
Merge pull request #2119 from akortunov/stringstream
Get rid of unnecessary string streams
6 years ago
Andrei Kortunov 8e6fd348d1 RigGeometry optimization: optimize geometry optimization 6 years ago
Capostrophic a71cfca580 Get rid of some remaining instances of C limit macros 6 years ago
Andrei Kortunov 254f01b89d RigGeometry optimization: vector iteration is more cheap than map iteration 6 years ago
Andrei Kortunov 71227ffc04 Handle possible invalid iterator issue during settings parsing 6 years ago
Andrei Kortunov 0937f02598 Get rid of unnecessary string streams 6 years ago
Bret Curtis 65a6b10995
Merge pull request #2066 from akortunov/guifixes
Do not read font size just for every single widget
6 years ago
Capostrophic d1e0a10136 Make sure AI data is initialized when loading actor records 6 years ago
Capostrophic ee2560edc3 Fix constant raining 6 years ago
David Cernat e96091fd6b [General] Use more consistent variable names for password, address, etc. 6 years ago
Capostrophic e412e1b41c Revert to lexical_cast<float>, catch out-of-range exceptions 6 years ago
Capostrophic 467724d5e8 Improve fallback numerical value handling (bug #4768) 6 years ago
Bret Curtis 91b962c095
Merge pull request #2099 from xyzz/replace-volatile-atomic
Replace volatile bools with std::atomic<bool>
6 years ago
Capostrophic 7155e787b4 Clean up fallback record creation 6 years ago
Ilya Zhuravlev 07e9ce84b3 Replace volatile bools with std::atomic<bool> 6 years ago
AnyOldName3 199e6ed82d Revert "Use forward declaration to reduce build times."
This reverts commit 305b9826df.
6 years ago
AnyOldName3 305b9826df Use forward declaration to reduce build times. 6 years ago
Alexander Kolodeev 7c3ef213ce Fix error when create new OpenCS addon 6 years ago
AnyOldName3 7b108ae9a2 Disable depth sorting for translucent objects in the shadow maps 6 years ago
AnyOldName3 e2515f6db7 Merge branch 'master' into osgshadow-test-vdsm 6 years ago
AnyOldName3 53188f61fc Fix animation bug with VAOs 6 years ago
David Cernat 9fe54aa8c6 [General] Add getArchitectureType() to multiplayer Utils
Additionally, rename getOperatingSystem() into getOperatingSystemType() for clarity.
6 years ago
David Cernat da6b89c185 [General] Add getOperatingSystem() to multiplayer Utils 6 years ago
Bret Curtis fc19c842cf
Revert "fix a rig bug visible with OSG_VERTEX_BUFFER_HINT=VAO" 6 years ago
Bret Curtis 97aa6f58e3
Merge pull request #2064 from sthalik/pr/win32-debug-parent-console
enable win32 debug console when launching from console
6 years ago
Stanislaw Halik c5c160870d fix accidental header namespace inclusion 6 years ago
Stanislaw Halik f6c8842457 move to debugging.[ch]pp 6 years ago
Stanislaw Halik 74955555b9 remove verbose comments and example 6 years ago
AnyOldName3 b6b1b39804 Make the terrain paging system use the view point rather than the eye point to determine which nodes to use so that it can be inherited by RTT cameras. 6 years ago
elsid da431135fa
Use pointer to check is NavMeshTilesCache::Value initialized 6 years ago
elsid aab7f2e8b9
Don't check for equality in move assignment
Assume it is undefined behavior to move-assing value to itself.
6 years ago
AnyOldName3 2d5da1a6fa Don't exclusively rely on a shadow map if its bounds have been expanded since the cull traversal. 6 years ago
Stanislaw Halik 56d79bd4e0 fix typo 6 years ago
Andrei Kortunov e073e0d8c9 Do not read font size just for every single widget 6 years ago
Stanislaw Halik 44e60b708b fix missing _WIN32 guard 6 years ago
Stanislaw Halik 64e960aa22 enable win32 debug console when launching from console 6 years ago
AnyOldName3 244bd289cb Change default colour mode (as apparently it actually gets used sometimes) 6 years ago
mp3butcher 7a85e10d2f fix a rig bug visible with OSG_VERTEX_BUFFER_HINT=VAO 6 years ago
AnyOldName3 0a409c0ab8 Make shadow map front-face culling configurable 6 years ago
AnyOldName3 dd207d9e54 Make the shadow polygon offset parameters configurable 6 years ago
AnyOldName3 642002b302 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 6 years ago
AnyOldName3 aa11832949 Resolve bugs with depth-clamped shadow maps 6 years ago
AnyOldName3 7ad4882f0c Fix debug hud frustum outline disappearence 6 years ago
AnyOldName3 061fa57335 Switch to better-performing data types for debug hud geometry 6 years ago
AnyOldName3 632b0d8979 Make shadow maps use their whole depth range for the overlap with the view frustum and rely on depth clamping to ensure objects outside the frustum still cast shadows. 6 years ago
AnyOldName3 660e423e99 Correct debug hud frustum colour 6 years ago
Bret Curtis 419e7ea5a2
Merge pull request #2035 from akortunov/coverity
Fix many Coverity Scan warnings
6 years ago
Andrei Kortunov 4ee15ddcb9 Fix many Coverity Scan warnings 6 years ago
Andrei Kortunov d2613e35a2 Fix some Clang 7 warnings 6 years ago
Bret Curtis 228f6b572f
Merge branch 'master' into prisonmarker 6 years ago
Bret Curtis f6243fae83
Merge pull request #1615 from akortunov/holstered_weapons
Weapon sheathing
6 years ago
Bret Curtis 9ae077c033
use c++11 std::align from <memory> (#2026)
* use c++11 std::align from <memory>

* for Ubuntu, use gcc5 instead of 4.8

* use travis to set gcc to 5

eval

and sudo

* use eval in .travis.yml

* use gcc-8

* replace precise with trusty llvm toolchain, because we have been using trusty for awhile now

* push things to matrix, so we can support multiple releases if we want

* we should not be allowing for failures, we are ready to start trusting clang and its analyzer

* scan-build was pushed to another package

* use gcc-8 still but wrap in scan-build

* travis.yml cleanup, have output of scripts go to stdout, make search for substring a regex

use double []

fix missing ,

use bash to use regex

black spaces matter

* set human readable names for our various builds, split out our static analysis between openmw and openmw-cs

* test if not set, then set otherwise ignore

* use quotes

* do not eval it, set it in travis env

* no more &&

* what does clang7 have to say?

* use sourceline for now

* use clang-7 instead of clang-7.0

* yes, llvm-toolchain-trusty-7 not llvm-toolchain-trusty-7.0

* for static analysis, openmw is compiled and checked on its own while openmw-cs is build with all the rest. this might change in the future.

and actually do it the other way around
6 years ago
Andrei Kortunov ad36834671 Fix some compiler warnings 6 years ago
Capostrophic 4efe1bc892 Add prison marker record fallback definition (bug #4701) 6 years ago
Andrei Kortunov 92e45507d8 Weapon sheathing support, including quivers and scabbards (feature #4673) 6 years ago
Bret Curtis a8d944e756
Merge pull request #2023 from elsid/navmesh_cache_limit
Navmesh cache limit
6 years ago
elsid 6e78fbb538
Double key size for item cache size 6 years ago
elsid 696bb9adc8
Add missing decrease for free navmesh data size 6 years ago
elsid d2c2bdadb5
Add align implementation 6 years ago
elsid b477775e16
Use callback to iterate over chunks 6 years ago
elsid db5638bf6d
Add global recast allocator to allocate temp buffers on stack 6 years ago
Andrei Kortunov a387c6b910 Fix MSVC2015 C4503 warning 6 years ago
Bret Curtis 261bbded00
Merge pull request #2016 from elsid/navmesh_update_change_type
Use new change type for update object
6 years ago
elsid 41319eb2bf
Use new change type for update object
To perform jobs for updated animated objects and doors with lowest
priority.
6 years ago
elsid b77684a135
Add TODOs 6 years ago
elsid 2ba026e2b2
Limit navmesh cache size by data size + key size 6 years ago
Andrei Kortunov 829faf7b2c Improve toggleactorspaths console command 6 years ago
AnyOldName3 b178e1868a Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 6 years ago
AnyOldName3 3c25e7b93d
Merge pull request #2010 from AnyOldName3/windows-debug-build-fix
Include missing Windows header before calling Windows-specific functions and switch CMake compile definitions to the new style.
6 years ago
elsid 264ea99af6 Use explicit default ctors call
Special change for MSVC2015.
6 years ago
AnyOldName3 a6d3210a9c Include missing Windows header before calling Windows-specific functions 6 years ago
AnyOldName3 d0c254bc7e Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 6 years ago
elsid 792a0585c0 Add recastnavigation as subdirectory 6 years ago
AnyOldName3 0208cb8616
Merge pull request #2001 from AnyOldName3/enable-osg-logging
Allow OSG objects to be sent to the debug log.
6 years ago
AnyOldName3 4489f23005 Remove recastnavigation conflicts 6 years ago
Andrei Kortunov a615076c61 Add default return value 6 years ago
AnyOldName3 3785ba6aa0 Merge upstream/master 6 years ago
AnyOldName3 90986df81c Allow OSG objects to be sent to the debug log. 6 years ago
Bret Curtis d6c674660a
Merge pull request #1633 from elsid/pathfinder_detour
Use recastnavigation for pathfinding (#2229)
6 years ago
AnyOldName3 1ca7ea23d1 Add extra uniforms to the disabled shadows StateSet so that the shadow texture samplers are bound ot the dummy shadow maps correctly. 6 years ago
Bret Curtis 3c53fe16e9
Merge pull request #1986 from akortunov/rootfix
[Regression] Handle RootCollisionNode exactly as in original engine
6 years ago
elsid 49d81241db Merge branch 'master' into pathfinder_detour 6 years ago
elsid 50b6ae3e10 Fix calculation for shape local AABB 6 years ago
elsid af2f4e8424 Allow to use zero cache size 6 years ago
elsid abc51a8a17 Add settings option to set max number of polygons per navmesh tile 6 years ago
Andrei Kortunov 6e05853478 Center progress bar when there are active messageboxes (bug #4691) 6 years ago
Andrei Kortunov 61da6b6ecf Print warning if the RootCollisionNode is attached to non-root node (bug #4311) 6 years ago
Andrei Kortunov 6d91fe69b2 Revert "Handle RootCollisionNode, attached to non-root node (bug #4311)"
This reverts commit ec9a1b0d05.
6 years ago
Marc Zinnschlag 4d88d6dd58 Merged pull request #1980 6 years ago
AnyOldName3 1e2bf9c447 Merge remote-tracking branch 'refs/remotes/upstream/master' 6 years ago
Andrei Kortunov 61e6e359c4 Allow creatures to use the autogenerated collision box (feature #2787) 6 years ago
Andrei Kortunov 41e90bd56c Unify random generator usage 6 years ago
AnyOldName3 b0907f8929 Add todos in case they're left until after the shadow PR is merged 6 years ago
AnyOldName3 a41ce42208 Move setting of colorMode to ShaderRequirements in case they're reused 6 years ago
AnyOldName3 474770eca8 Switch shadow map rendering to a specialised, simplified shader. 6 years ago
AnyOldName3 ce15369bbd Convert colorMode shader define to a uniform 6 years ago
elsid 03d4ce5e49
Log find path exception with level verbose, add more info to message 6 years ago
elsid dc2eb2e16b
Do not write to global log async navmesh updater exceptions 6 years ago
Bret Curtis 53ccce1867
Merge pull request #1966 from akortunov/logfix
Allow apps without logging system to display log messages
6 years ago
Andrei Kortunov b5df385111 Allow apps without logging system to display log messages 6 years ago
elsid e57504ae7c
Lower log level 6 years ago
elsid 0f6a64ad54
Split makeNavMeshTileData 6 years ago
elsid fb655cb04f
Remove macroses to check recastnavigation functions result 6 years ago
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.
6 years ago
elsid 69b5834c64
Add doc for Navigator 6 years ago
elsid ae7285e960
Use ScopeGuarded instead of raw mutex 6 years ago
elsid cf4066751c
Add classes to encapsulate value guarded by mutex 6 years ago
elsid 1a27489904
Add special type for object id 6 years ago
elsid 7c80bb9411
Support multiple threads for async nav mesh updater 6 years ago
elsid ff478aba6d
Use actor half extent for interior cells 6 years ago
elsid 346e9e3141
Add off mesh connections for doors without teleport 6 years ago
elsid d02beae5a8
Find path for actors according to their abilities to swim and walk 6 years ago
elsid dc09674362
Add command and settings option to enable actors paths render 6 years ago
elsid c95cea414c
Support water for NavMesh 6 years ago
elsid 72f211ef28
Add enums for area type and flags 6 years ago
elsid fa23b590a4
Add unwalkable areas to NavMesh 6 years ago
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.
6 years ago
elsid b33a291a67
Log thread id 6 years ago
elsid f6a60790f8
Create collision shape for all avoided nodes 6 years ago
elsid e24d4d7052
Explicitly use RC_NULL_AREA constant to mark unwalkable areas 6 years ago
elsid 330e596c64
Remove useless parameter 6 years ago
elsid c3298d13a6
Add log sinks (stdout and file) 6 years ago
elsid 84949bedb1
Remove and add tile in single critical section 6 years ago
elsid 144e1a063b
Support animated objects 6 years ago
elsid 4aba0fa85f
Limit number of NavMesh tiles to add by distance from player tile 6 years ago
elsid d2fd9abd51
Split RecastMesh into tiles 6 years ago
elsid dbb1d99bff
Add NavMeshItem generation to fix update NavMesh for render 6 years ago
elsid f268ec5d34
Measure total time for NavMesh build from first pop 6 years ago
elsid c26773bd29
Log update NavMesh status 6 years ago
elsid 937e8e1803
Allow to create empty RecastMesh 6 years ago
elsid dd5f4498f6
Increment NavMesh revision on remove or add tile 6 years ago
elsid ed3a255f65
Do not use NavMesh to find changed tiles 6 years ago
elsid d1e71f9322
Support btBoxShape for RecastMesh 6 years ago
elsid 70a369f70e
Add command to enable NavMesh render
togglenavmesh or tnm
6 years ago
elsid 1caa18bb4f
Use one recast mesh for all jobs 6 years ago
elsid 794cfc4aa3
Write detournavigator log to file 6 years ago
elsid dd5e6a61a3
Support btCompoundShape for RecastMesh 6 years ago
elsid 373adc6ec4
Option to enable/disable file names revisions 6 years ago
elsid f8909218ee
Store recast mesh bounds 6 years ago
elsid d1d034a1ec
Update NavMesh one by one tile in order from nearest to player 6 years ago
elsid 41caca24ee
Options to enable/disable write recast mesh and nav mesh into file 6 years ago
elsid 6d233ae868
Option in settings to enable/disable detour navigator debug log 6 years ago
elsid 430ba9d7a5
Build NavMesh tile data only for changed tiles 6 years ago
elsid fafba8ea0c
Use recastnavigation to find path 6 years ago
elsid 4f2bfa1e9d
Add operators for osg types 6 years ago
elsid c01be7b07f
Add operators for bullet types 6 years ago
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.
6 years ago
Andrei Kortunov f9271fd7f0 Fix crash in the ESM reader, when list is empty (bug #4677) 6 years ago
AnyOldName3 0124be5713 Merge upstream/master 6 years ago
Andrei Kortunov e06f0b797a Replace all NULLs to nullptr 6 years ago
cc9cii 6ec6b9bc2a OpenMW Integration.
Read the ESM/ESP records but do nothing with them for the moment.
6 years ago
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)
6 years ago
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.
6 years ago
cc9cii 4cd4cf8479 Resolved conflicts and build fixes. 6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
Marc Zinnschlag 38758a9555 Merged pull request #1944 6 years ago
Capostrophic f20f49daa6 Content selector: allow to copy paths to clipboard (feature #2847) 6 years ago
Andrei Kortunov 43c7438e8e Move WeakCache to components/misc 6 years ago
Kyle Cooley 7eb1b14b21 Periodically prune empty elements in weak cache 6 years ago
Kyle Cooley 031502b2ab Reorganize ActorAdapter data, use weak cache for sharing 6 years ago
Kyle Cooley 6bece13a32 Use new Log class for error message 6 years ago
Kyle Cooley e2ac392a40 Move common stuff to scene util, fix errors with 1st person meshes 6 years ago
Kyle Cooley 8444ee9981 Start rendering npc's 6 years ago
Marc Zinnschlag 43880ca47b Merged pull request #1919 6 years ago
Andrei Kortunov 0176ee389e Handle length of UTF-8 strings properly in plugin metadata (bug #4653) 6 years ago
Andrei Kortunov bce8de5fe9 Respect selected encoding in the content selector (bug #4467) 6 years ago
David Cernat f100a660d4 [General] Fix ranged attack sync when using last throwing weapon or ammo 6 years ago
Capostrophic 92259c6cca Discard count arguments for AddSoulGem and RemoveSpell (bug #3762) 6 years ago
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.
6 years ago
Marc Zinnschlag 7be9f2ca45 Merged pull request #1891 6 years ago
David Cernat db39c62e89 [Documentation] Update credits 6 years ago
Andrei Kortunov 01b3f92f7e Make coc and fixme console commands close to vanilla (bug #4292, bug #4217) 6 years ago
Andrei Kortunov 276b7830a9 Mass potion creation (feature #4642) 6 years ago
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.
6 years ago
Andrei Kortunov 70ed8fd1a9 Use constants instead of widely used magic numbers (task #4645) 6 years ago
Marc Zinnschlag 06b2a23e74 Merged pull request #1768 6 years ago
Marc Zinnschlag d76367918a Merged pull request #1907 6 years ago
Marc Zinnschlag 107165d36d Merged pull request #1923 6 years ago
Andrei Kortunov 2961f0d810 Allow to use the %Name for creatures (bug #4644) 6 years ago
Capostrophic 95aa05e41b Tweaks to script parser messages and pathgrid warnings 6 years ago
Andrei Kortunov 09427d3f5e Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437) 6 years ago
Capostrophic 363516049d Actually fix General number formatting 6 years ago
Andrei Kortunov 7a986f38da Support for user-defined TrueType fonts 6 years ago
Andrei Kortunov c9c0230d2a Scale journal fonts separately from common ones 6 years ago
Andrei Kortunov adbaeb7cca Improve GUI scaling (bug #3288) 6 years ago
Marc Zinnschlag 6100e34051 Merged pull request #1912 6 years ago
Andrei Kortunov f0919f51e9 Fix integer result formatting of scripting functions 6 years ago
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.
6 years ago
Andrei Kortunov c2c24a76a4 Handle MyGUI exceptions inside destructors 6 years ago
Andrei Kortunov aca6625af4 Avoid possible memory leak by using the unique_ptr 6 years ago
Andrei Kortunov a262e4b342 Print warning, if can not close or remove temporary file 6 years ago
Andrei Kortunov d5bcc49079 Initialize missing struct fields 6 years ago
Andrei Kortunov e5a81b1f99 Fix some issues, found by Coverity Scan 6 years ago
David Cernat 8012d0d7b7 [General] Include hit position in PlayerAttack and ActorAttack packets 6 years ago
Andrei Kortunov 5693ceca74 Remove redundant declaration 6 years ago
Capostrophic 65ff346b61 Make NPC record reputation, disposition and faction rank have unsigned char type 6 years ago
Andrei Kortunov 7e2bda459b Check if there are textures in FlipController to avoid division by zero (bug #4614) 6 years ago
Marc Zinnschlag 78a84042ad Merged pull request #1901 6 years ago
Capostrophic 7ef6fa9f61 Remove deprecated GMST get* functions 6 years ago
Andrei Kortunov b0ac0b0b22 Do not initialize map every call 6 years ago
Marc Zinnschlag 24ce8cce72 Merged pull request #1898 6 years ago
Andrei Kortunov 0ddd0e4edc Fix light flicker amplitude calculation 6 years ago
Andrei Kortunov c677f7ca27 Rework pulsing light sources (bug #4615) 6 years ago
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.
6 years ago
Marc Zinnschlag 232ea4f793 Merged pull request #1887 6 years ago
Sophie Kirschner c412f99963 Remove commented lines in UnrefWorkItem::doWork 6 years ago
Marc Zinnschlag 327f36b081 Merged pull request #1876 6 years ago
Andrei Kortunov ff241fb787 Optimize skinning (task #4605) 6 years ago
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;
6 years ago
Andrei Kortunov a560a9e00d Allow messageboxes arguments to have newline characters (bug #3836) 6 years ago
AnyOldName3 db707a31ec Add clipping planes when allow shadow map overlap is enabled 6 years ago
AnyOldName3 25e92481f4 Merge remote-tracking branch 'refs/remotes/upstream/master' 6 years ago
AnyOldName3 15e820825f Fix another convex hull clipping issue and restore z-clipping 6 years ago
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
6 years ago
Capostrophic a06c9c767d Treat <> and << operators as < and >< and >> as > in scripts
(bug #4597)
6 years ago
Marc Zinnschlag dc9aedca7d Merged merge request !33 6 years ago
AnyOldName3 3ce96997d1 Remove sneaky tabs. 6 years ago
AnyOldName3 80082308f0 Merge upstream (shadermanager log system revamp) 6 years ago
AnyOldName3 dd501f4132 Make ConvexHull::clip more resilient against large values. 6 years ago
AnyOldName3 987306feb9 Fix ConvexHull::extendTowardsNegativeZ 6 years ago
Bret Curtis dcd381049c
Merge pull request #1872 from akortunov/extended_logging
Use new logging system
6 years ago
Andrei Kortunov c7a5548475 Use new logging system for editor 6 years ago
Andrei Kortunov 1452684d9e Use new logging system for components 6 years ago
Bret Curtis c0e50b2c02
Merge pull request #1865 from elsid/material_race_condition
Fix race condition (bug #4584)
6 years ago
Andrei Kortunov 9a5b016293 Move crashcatcher initialization to components 6 years ago
Andrei Kortunov 5e172ed831 Move cerr initialization out of 'try' block 6 years ago
James Carty 1c49698053 Implement 'g' flag 6 years ago
Bret Curtis 61b34124e2
Merge pull request #1847 from akortunov/extended_logging
Improve console logging
6 years ago
James Carty 579f35511a Add support for scietific notation flag for MessageBox 6 years ago
Andrei Kortunov 7d6e3673e0 Implement advanced logging system (feature #4581) 6 years ago
elsid c2b8c7086a
Fix race condition
Values are accessed from main thread and cell preloader threads.
6 years ago
elsid 2de38142e2
Replace raw pointers by unique_ptr 6 years ago
elsid f2a63bcf35
Add unit tests for BulletNifLoader 6 years ago
elsid 6afc1dc3a0
Support build with coverage for components and test suite 6 years ago
Marc Zinnschlag b67b17010d Merged pull request #1826 6 years ago
Andrei Kortunov ec9a1b0d05 Handle RootCollisionNode, attached to non-root node (bug #4311) 6 years ago
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.
6 years ago
Bret Curtis 03bf599426
Merge pull request #1856 from Capostrophic/hidden
Revert untextured shapes rendering changes
7 years ago
Capostrophic 348c6f848e
Fix a bunch of MSVC warnings 7 years ago
AnyOldName3 3b3721897d Make indoor shadows disableable. 7 years ago
AnyOldName3 a2b54714d4 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 7 years ago
AnyOldName3 6286f5a1d4 Ensure RigGeometry child geometries have sensible bounds without actually computing them. 7 years ago
Capostrophic 85208eff7f Revert untextured shapes rendering changes 7 years ago
Capostrophic bda23c6ad6 Fix nodemask 7 years ago
Capostrophic a1e3b2e586 Don't render NiTriShapes without NiTexturingProperty (bug #4483) 7 years ago
Andrei Kortunov 1f4dd3b393 Make partial binary search case insensitive, as it supposed to be (bug #4558) 7 years ago
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.
7 years ago
Marc Zinnschlag 452a706047 Merged pull request #1837 7 years ago
Andrei Kortunov e2519226aa Move boost include 7 years ago
Andrei Kortunov c2a175c2e0 Move crash catcher wrapper to separate file 7 years ago
Andrei Kortunov ac98797999 Add missing file 7 years ago
Andrei Kortunov c454f1bdad Use log file for editor (feature #4012) 7 years ago
AnyOldName3 8f4125134f Merge remote-tracking branch 'refs/remotes/upstream/master' 7 years ago
Andrei Kortunov 369ea7e177 Check if a temporary file was successfully closed 7 years ago
Andrei Kortunov 12144de8ed Initialize missing variables 7 years ago
AnyOldName3 cc23a968d1 Merge upstream/master 7 years ago
AnyOldName3 71778e2552 Disable convex hull clipping based on render leaf traverser results in the z direction. 7 years ago
AnyOldName3 02ab3b466a Use simplified convex hull clipping maths from the other function doing hte same thing 7 years ago
Andrei Kortunov 469bb29621 Do not try to handle shape controllers as node controllers 7 years ago
David Cernat 8c40010c87 [General] Add missing inventoryBaseId to creatures in RecordDynamic 7 years ago
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.
7 years ago
Andrei Kortunov 7e0df01c83 Do not optimize animated shapes (bug #3950) 7 years ago
David Cernat 2dbf3893c0 [General] Compress item refIds in PlayerEquipment packets 7 years ago
David Cernat d93b67ef21 [General] Sync soul refIds for items and add related script functions 7 years ago
David Cernat c3ff273a22 [General] Add getVectorSize() and resetVector() to Utils 7 years ago
David Cernat b4802e4201 [General] Use Time struct for time in BaseWorldstate 7 years ago
David Cernat a4b588d1b5 [General] Add optional timestamps to journal entries in PlayerJournal 7 years ago
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.
7 years ago
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.
7 years ago
David Cernat 63a86f145d [Client] Record type of each InterpreterContext for later checking 7 years ago
David Cernat 3165c84db4 [General] Rework PACKET_ORIGIN enum
Additionally, comment out reading of originClientScript in ObjectPacket for now.
7 years ago
David Cernat 9e6459043b [General] Fix typo related to originClientScript in ObjectPacket 7 years ago
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.
7 years ago
David Cernat 715cac807d [General] Add compareFloats to Utils 7 years ago
David Cernat cb6c37a26d [General] Replace doubles with floats in BaseStructs and BaseWorldstate 7 years ago
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.
7 years ago
David Cernat 20e0100706 [General] Rework Attack packets and add synchronization for item magic 7 years ago
David Cernat 21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
7 years ago
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.
7 years ago
David Cernat 9823a77bf2 [General] Turn PlayerRegionAuthority into WorldRegionAuthority
WorldRegionAuthority is a Worldstate packet.
7 years ago
David Cernat 72d286473b [General] Move credits integrity error message to new ErrorMessages file
Additionally, use correct log level for credit integrity message on server.
7 years ago
David Cernat 0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 7 years ago
David Cernat 646111d998 [General] Use correct credits checksum and move it to Version.hpp 7 years ago
David Cernat 22b2b7a9c6 [General] Add Utils methods for checksums 7 years ago
Nikolay Kasyanov 21f198af7a Fix debugger detection on macOS (#4511) 7 years ago
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.
7 years ago
David Cernat 6ebe09375f [General] Implement ObjectActivate packet & associated script functions 7 years ago
David Cernat 81b160cae8 [General] Add placeholder for ObjectActivate packet 7 years ago
David Cernat 61da0d2475 [General] Turn PlayerInteraction into PlayerInput 7 years ago
David Cernat 32b6134fad [General] Add placeholder for CellReplace packet 7 years ago
David Cernat a471f5e452 [General] Turn CellCreate into a Worldstate packet 7 years ago
David Cernat ae55ee7f0b [General] Add getNumberOfDigits to Utils in components 7 years ago
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
7 years ago
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
7 years ago
David Cernat 528bd26a3b [General] Allow followers to follow non-authority players through cells 7 years ago
David Cernat 09da24f1ea [General] Rename all instances of refNumIndex into refNum
This creates symmetry with mpNum and should cause less confusion in the future.
7 years ago
David Cernat bdf2f03c4f [General] Remove unnecessary MapChanges struct from BaseWorldstate 7 years ago
David Cernat ceea65f666 [General] Change pre-rewrite's version to 0.7.0-alpha 7 years ago
Bret Curtis 99e4d49e7c
Merge pull request #1787 from akortunov/profilierfont
Use the DejaVuLGCSansMono.ttf for profiler output
7 years ago
Andrei Kortunov 70b6d4983d Use the DejaVuLGCSansMono.ttf in profilier output 7 years ago
elsid 3f21c49479
Put check for nif file name into separate function 7 years ago
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
7 years ago
David Cernat bff6e9e235 [General] Implement ActorAI packet, part 5
Allow repetition for AiWander package to be turned on and off.
7 years ago
Andrei Kortunov c921d1c7e9 Refactor NifStream class (eliminate LNK4221 MSVC warning) 7 years ago
Andrei Kortunov 16a4df25d6 Make void function to do not return value 7 years ago
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.
7 years ago
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.
7 years ago
David Cernat 5baef09f79 [General] Implement ActorAI packet, part 2
The server can now make actors start combat with players or other actors.
7 years ago
Alexander Stillich 725cc94210 Renamed cc_install to something less cryptic (crashCatcherInstall) 7 years ago
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
7 years ago
David Cernat 3ed9d89280 [General] Use separate variables for video & music filenames in packets 7 years ago
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.
7 years ago
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.
7 years ago
David Cernat 32ad8ef2f0 [General] Fix incorrect capitalization in ObjectMove directives 7 years ago
David Cernat bbb461a5e5 [General] Make sure data in guiMessageBox is compressed 7 years ago
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
7 years ago
Koncord 79903c455c [General] Allow different types for vectorContains 7 years ago
Koncord 1f4e6e9114 [General] Add integrity checks to Handshake packet 7 years ago