Commit graph

13084 commits

Author SHA1 Message Date
scrawl
e7b6ea4e3f Add cycle weapon/spell actions to the list of controller actions (Fixes #3613) 2017-02-05 20:23:49 +01:00
scrawl
3065600a86 Skip expensive visitEffectSources call if no summoned creatures or summon effects are active 2017-02-05 02:26:28 +01:00
scrawl
ee4073541c Animation: cache getVelocity() 2017-02-05 02:26:28 +01:00
scrawl
a2cede8f34 Add timer for updateEquippedLight 2017-02-05 02:26:28 +01:00
scrawl
1eb3384043 Avoid rotating by zero in CharacterController 2017-02-05 02:26:28 +01:00
scrawl
7201cf5fe2 ItemWidget: skip setImageTexture if the icon has not changed 2017-02-05 02:26:27 +01:00
scrawl
1447bfa215 Improve scene loading performance by creating collision objects with the correct rotation right away instead of adjusting it later 2017-02-04 15:12:01 +01:00
scrawl
884d306bf3 Throw exception when told to use 0 threads 2017-02-04 05:58:12 +01:00
scrawl
2db7292bcb Add new setting for the number of preloading worker threads
If you have CPU cores to spare, consider setting 2 or 3. Up to about 3 threads, preloading performance seems to increase in a linear fashion, but with 4 or more threads I/O bottlenecks and synchronization overhead starts to show.
2017-02-04 02:59:28 +01:00
scrawl
eaeba4138b Move the deletion of PreloadItem to the worker thread 2017-02-04 02:36:44 +01:00
scrawl
33e654f94d Add explicit handling of most commonly used nodes to NodeVisitors to avoid excessive virtual function calls 2017-02-04 02:16:26 +01:00
scrawl
83a9435167 Fix unnecessary use of CopyFramebufferToTextureCallback when loading is too fast for a loading screen to be displayed 2017-02-03 23:39:39 +01:00
scrawl
767eba941f Speed up finding of attachment node by using the cached nodeMap 2017-02-03 23:15:37 +01:00
scrawl
a76d693627 Speed up ControllerVisitor by skipping sub graphs that have no ChildrenRequiringUpdateTraversal() 2017-02-03 23:10:14 +01:00
scrawl
c58fc6d276 Improve performance of loading screen by not recomputing the bounding sphere of the entire scene after each loading step 2017-02-03 22:29:38 +01:00
scrawl
0be811c519 Update the resource cache every second instead of every frame
A dry run takes about ~1.5ms. Even though it's all done in the worker thread, the locks used can stall loading operations that are about to happen in other threads, and just in general this CPU load is unnecessary.
2017-02-03 03:44:30 +01:00
scrawl
6d8c414071 Set osgViewer ReleaseContextAtEndOfFrameHint to false for better performance when in SingleThreaded mode
The flag is normally set to off by default when using Viewer::run() - however since we're using our own frame loop, we have to unset the flag ourselves
2017-02-02 22:16:59 +01:00
scrawl
c5f8ff6e0e Add names to several nodes for debugging purposes 2017-02-02 21:49:52 +01:00
scrawl
625c5040ce Fix build 2017-02-01 15:49:20 +01:00
scrawl
1808b8567e Add 'small feature culling pixel size' setting specifically for water RTTs, by default set higher than the one in [Camera] 2017-02-01 06:00:14 +01:00
scrawl
fcb4129aee Add 'small feature culling pixel size' setting 2017-02-01 06:00:14 +01:00
scrawl
960d4a96c3 Reduce the number of osg::Material state by setting the default state on the graph root 2017-02-01 06:00:14 +01:00
scrawl
34deb6e7b1 Add 'showSceneGraph' command to export the scene or a particular object to .osgt for debugging purposes 2017-02-01 06:00:14 +01:00
MiroslavR
d97e9cfe7e Fix InterpreterContext::updatePtr updating mLocals to the implicit ref's locals when interpreting a targeted global script (Fixes #3738)
The interpreter context of a targeted global script would point to the target's locals instead of the global script instance's locals when the target changed cell during script execution. Credit to scrawl for the solution.
2017-01-29 13:29:53 +01:00
MiroslavR
c64351b3e8 ESS-import: player is no longer disabled (Bug #3246) 2017-01-21 03:39:51 +01:00
scrawl
cc19b4bd8a Fix door rotation order in collision case (Bug #3707) 2017-01-19 02:19:44 +01:00
scrawl
45fb4f04b1 Update reference of the interpreter context when an Activate results in a take action (Fixes #3727) 2017-01-18 21:57:50 +01:00
scrawl
70c5f64caa Fix mLocals not being updated in InterpreterContext::updatePtr 2017-01-18 21:55:58 +01:00
scrawl
c6822b9eb6 Merge pull request #1192 from damiel/water_refactor
Added refactoring of shader handling from visvalda's fog shader
2017-01-16 18:26:28 +01:00
Martin-Kevin Neumann
5a8efa1649 added refactoring of shader handling from visvalda's fog shader 2017-01-15 14:17:22 +01:00
NeveHanter
e82d542d89 Merge remote-tracking branch 'upstream/master' into bugfix-3617 2017-01-15 09:49:45 +01:00
NeveHanter
811e9ad9f3 Fixed bug https://bugs.openmw.org/issues/3617 by allowing touch and target enchantments from ranged weapons and their projectiles to explode even when colliding with non-activable objects, terrain, water slab or when shoot underwater.
Also allowed projectiles to fly through the dead bodies as in vanilla.
2017-01-15 09:49:25 +01:00
Allofich
f2240dde9c Allow command spells to work when cast by AI on AI
(Fixes #3723)
2017-01-15 01:56:22 +09:00
Allofich
e825010107 Apply command spell effects on impact
Command spells should apply their effects, including taking an actor out
of combat, every time a spell successfully hits, even if a previous
command effect is still active.
2017-01-15 01:53:22 +09:00
Allofich
a46c4de918 Stop combat when adding an AI package to an actor
(Fixes #3722)
2017-01-15 01:53:22 +09:00
scrawl
b87abb0456 Reset activation flags when an object is copied (Fixes #3671, Fixes #3719) 2017-01-14 15:29:36 +01:00
scrawl
69ce9f32bc Activate/OnActivate fix (Bug #3712) 2017-01-14 00:10:43 +01:00
scrawl
73aa07b81b Merge pull request #1189 from Allofich/attack
Match best attack selection to vanilla behavior
2017-01-11 18:36:10 +01:00
Allofich
2322ab3125 Don't make Command spells cancel AI packages
(Fixes #3649)
2017-01-12 00:07:22 +09:00
Allofich
c10585fb07 Match best attack selection to original MW
(Fixes #3721)
2017-01-11 22:22:46 +09:00
MiroslavR
f1f9209814 Creatures now auto-equip shields (Fixes #3704) 2017-01-08 20:52:04 +01:00
Allofich
5e992a0342 Fix attempting to access NPC stats on creatures 2017-01-06 02:58:24 +09:00
Assumeru
1a073ca642 Fix teleportation being unreachable 2017-01-03 22:02:23 +01:00
Allofich
eee49b7ea7 Make dispel an instant effect again (Fixes #3695) 2017-01-02 17:35:50 +09:00
scrawl
80c008906b Fix texture coordinates 2017-01-02 04:50:33 +01:00
scrawl
48a23d61b2 Mask out water in global map overlay 2017-01-02 04:01:04 +01:00
scrawl
7b5f3e3cdc Fix crash in ProjectileManager when a sound id fails to play or is not found 2017-01-01 21:34:31 +01:00
scrawl
708009eac4 Merge pull request #1158 from logzero/move3
[RFC] Movement solver experiments
2017-01-01 20:44:41 +01:00
scrawl
212e85e810 Merge pull request #1174 from Allofich/combat
Adjustments to AI combat engaging and disengaging
2017-01-01 19:36:09 +01:00
scrawl
da3815f5a6 Merge pull request #1179 from Armada651/fix-audio-cutoff
OpenAL_Output: When a source is finished, rewind it instead of stopping it.
2017-01-01 19:13:32 +01:00
logzero
dbf0fa6766 Skip stepping if movement tracer hits actor. 2016-12-31 10:57:06 +01:00
Marc Zinnschlag
dedd95f52a Merge remote-tracking branch 'miroslavr/save-cleanup' 2016-12-29 08:37:59 +01:00
Jules Blok
e9d8ff532f OpenAL_Output: When a source is finished, rewind it instead of stopping it.
This works around a bug in the MacOS OpenAL implementation.
2016-12-29 01:03:13 +01:00
MiroslavR
c9dd63af8d Merge pull request #1171 from NeveHanter/travel-followers-cost
Implemented "paying" for travelling followers
2016-12-26 22:34:39 +01:00
NeveHanter
8568cd049f Removed "less" character from the documentation by the requested opportunity. 2016-12-26 21:46:43 +01:00
Allofich
54fa921dad Change some AI combat engagements to not need LOS 2016-12-26 22:42:46 +09:00
Allofich
6fa0354a17 Make AI attack player also if it attacks follower 2016-12-26 22:42:45 +09:00
Allofich
5a6ea4e84e Cleanup 2016-12-26 22:42:44 +09:00
Allofich
e10c4d8814 Stop combat between AI when canFight is false 2016-12-26 22:42:42 +09:00
Allofich
e8c7ad2f4b Change environment check to canFight check
Instead of just checking that combatants are in compatible environments,
allow combat if in attack range using canFight. Together with previous
commit, fixes #3690.
2016-12-26 02:14:01 +09:00
Allofich
588442b6cc Make enemies start combat with player followers
Recreates vanilla behavior of enemies starting combat with player
followers and escorters. (Fixes #3691)
2016-12-26 02:13:54 +09:00
logzero
a5360483bb Back off slightly when we are touching something.
This can reduce the amount of movement solver failures significantly.
I've observed a drop of 8 iteration cases by almost factor of ten.
2016-12-25 15:34:43 +01:00
logzero
00f3bfba27 Use tracer hit height to skip stepping up in movement solver. 2016-12-24 23:07:44 +01:00
MiroslavR
c2b491cd70 ESSImporter: Convert last known exterior cell (Fixes #3693)
+ some research
2016-12-24 18:30:39 +01:00
logzero
ab1724d3db Compare new velocity to the original velocity.
Using old velocity seems awkward,
probably a copypaste/refactoring bug.
2016-12-24 12:38:23 +01:00
logzero
e58de5e410 Remove superfluous velocity reflection in movement solver.
The slide projection negates the reflection effect.
Just to be sure I've compared the resulting vectors
with and without reflection at runtime.
2016-12-24 12:29:09 +01:00
NeveHanter
ff4aba2a6e Moved duplicated code to common ActionTeleport static method and reordered travel price calculations 2016-12-23 21:27:29 +01:00
MiroslavR
5f234f8952 Dialogue: "PC Rank" condition now uses speaker's faction if "PC Faction" is not given (Fixes #3689) 2016-12-23 19:03:59 +01:00
MiroslavR
87fd011a28 Clean-up saves by dropping references with invalid RefNums (Fixes #1956) 2016-12-22 20:48:58 +01:00
scrawl
cf496287f7 Silence static analysis warnings 2016-12-22 14:43:54 +01:00
logzero
50fd913058 Refactor stepMove function into a Stepper object
to be able to reuse up stepper results
for successive movement solver iterations.
This can reduce the number of convex casts
almost by half in some cases.
2016-12-21 19:02:42 +01:00
logzero
4f6e65e481 Apply sliding upward check to new velocity.
This helps to capture the case where new velocity
only differs in the z component (normal pointing up).
TODO: Find a better way to handle the normal pointing up case.
2016-12-21 19:02:42 +01:00
logzero
0b08802910 Integrate MinStep move attempt into stepMove.
This can save 1 to 3 convex casts per iteration.
2016-12-21 19:02:41 +01:00
logzero
25a0219e4d Use cosine of max slope angle for walkable slope checks in movement solver. 2016-12-21 19:02:41 +01:00
logzero
561e0cbbf9 Use squared length for distance checks in movement solver. 2016-12-21 19:02:40 +01:00
scrawl
dc1f788cff Use osg::PI over M_PI 2016-12-21 16:49:37 +01:00
NeveHanter
15cd3c178b Clamp price multiplication to 1, as it resulted in player alone traveling at no fee. 2016-12-20 21:23:55 +01:00
NeveHanter
8902bb5b13 Player now pays for the following actors when travelling, with the exception of the first follower who travels for free, refactored getFollowers to getActorsFollowing/getActorsSidingWith 2016-12-20 12:38:51 +01:00
MiroslavR
cd13570230 ESSImporter: Import mark location 2016-12-18 04:37:59 +01:00
scrawl
6140768783 Enable waterCollision after moving the player above water (Fixes #3672) 2016-12-17 23:21:33 +01:00
Aussiemon
2f66b91ac5 Added check to prevent attempted wandering of empty paths 2016-12-16 15:18:28 -07:00
scrawl
913a8fe1bd Merge pull request #1160 from Aussiemon/actorupdatecollision
[Do not merge yet] Added check before attempting to remove actor's collision object
2016-12-16 20:46:00 +01:00
Aussiemon
b794aa7c2f Helper methods for updateCollisionMask(), prevent water collision being removed twice, remove Bullet 2.8.5 methods 2016-12-16 12:22:07 -07:00
scrawl
f8690dcd20 Set the drag-and-drop state after initiating the drag, not before (Fixes #3134) 2016-12-16 20:16:59 +01:00
scrawl
cca75499ee Clear the Skeleton's bone cache when a node is added/removed (Fixes #3663) 2016-12-16 20:09:20 +01:00
Marc Zinnschlag
34389e15cd Merge remote-tracking branch 'origin/master' 2016-12-16 12:28:22 +01:00
Marc Zinnschlag
827c78a4cd added text column to ref id table (books) 2016-12-16 12:28:09 +01:00
Leon Krieg
12c8c3276a Disable NPC collision only when death animation has finished (#3666) 2016-12-15 19:33:14 +01:00
Leon Krieg
739cd5ba45 Fixed more spelling mistakes 2016-12-15 13:09:40 +01:00
Aussiemon
7c2a088b34 Added check before removing water collision object from world 2016-12-14 20:13:23 -07:00
Aussiemon
e30dfb13d3 Added check before attempting to remove actor's collision object from world 2016-12-14 19:05:30 -07:00
Leon Krieg
c7b4b2cdd7 Fixed multiple spelling mistakes 2016-12-14 16:39:33 +01:00
scrawl
8bdd5d1131 Merge pull request #1151 from Aussiemon/projectilelightsfix
Update to implementation of projectile lights
2016-12-14 14:33:09 +01:00
mrohrlach
71e74f5a93 Moved projectile light calculation to separate method 2016-12-13 18:04:20 -07:00
MiroslavR
76ee5845ac Fix swish sound ID and play swish sound effects for all creatures (Fixes #3653) 2016-12-11 19:35:53 +01:00
MiroslavR
8c97ac269d Remove item shadows properly (Fixes #3652) 2016-12-10 22:22:41 +01:00
mrohrlach
f0f78c9d64 Slight adjustments to disintegration fix 2016-12-09 19:55:26 -07:00
mrohrlach
9624d8aade Added new method and variable to track float remainders of disintegration effections 2016-12-09 19:48:56 -07:00
mrohrlach
f5da179a90 Removed two more bad casts 2016-12-09 18:15:40 -07:00
mrohrlach
3b0c791892 Removed bad casts and unnecessary comments 2016-12-09 18:10:06 -07:00