scrawl
023c87b215
Preload cell when the player goes near a teleport door. It works!
2016-02-07 05:13:46 -08:00
scrawl
a7b217def2
AI: don't cast fortify effects ( Fixes #3184 )
2016-02-07 01:29:11 +01:00
scrawl
162287b82d
AI combat actions: rename 'target' to 'enemy'
2016-02-07 01:29:11 +01:00
scrawl
94c05c6baa
AI: don't cast useless resist spells ( Fixes #2760 )
2016-02-07 01:29:02 +01:00
scrawl
d3415387a5
AI: take into account success chance when rating a spell
2016-02-07 01:18:20 +01:00
scrawl
d855a13b44
Clear the resource cache from the worker thread
2016-02-07 00:36:31 +01:00
scrawl
6f9ca0f68f
Add basic cell preloader class
...
Not properly in use yet, but seems to be working.
2016-02-07 00:14:13 +01:00
scrawl
df57d4bfba
Use a common base class for resource managers
...
Implement updateCache to delete unreferenced cached objects when they have not been referenced for a while.
2016-02-06 17:22:17 +01:00
scrawl
a72af4a1a3
cout that should be cerr
2016-02-05 23:25:01 +01:00
scrawl
9e5225bb6f
Do not unref a Texture's image data after applying it
2016-02-05 23:21:54 +01:00
scrawl
499beda665
Clear terrain texture cache before applying filter settings
2016-02-05 23:20:13 +01:00
scrawl
9e53e12c70
More renaming of TextureManager -> ImageManager
2016-02-05 23:10:27 +01:00
scrawl
5ee3d1698f
Remove getWarningTexture in favor of getWarningImage
2016-02-05 23:05:43 +01:00
scrawl
f99f403dda
Rename TextureManager to ImageManager
2016-02-05 23:03:53 +01:00
scrawl
6ef848b7c5
Remove TextureManager::getTexture2D
...
Instead use getImage and let the caller create the Texture. Sharing of textures is then handled in post by the SharedStateManager.
This is closer to what the OSG serializer does.
Streamlines the TextureManager and will make it easier to multithread.
2016-02-05 23:01:11 +01:00
scrawl
e8662bea31
Change the way that image origin is converted to OpenGL's lower-left convention
...
Flip the texture coordinates instead of flipping textures.
This simplifies the TextureManager (no need to worry if the caller wants flipping or not), should make it easier to generalize & multithread it.
2016-02-05 21:03:11 +01:00
scrawl
5b972ee777
Move texture filtering settings to SceneManager
...
Practical benefits:
- Filter settings are now applied to native OSG format models. These models do not use TextureManager::getTexture2D since the model itself specifies a Texture.
- The GUI render manager will be able to use its own separate textures, making it easier to turn off filtering for them.
2016-02-05 21:03:10 +01:00
scrawl
c9a67ab423
Do not add scripts from levelled creatures twice (Bug #2806 )
...
Do not insert objects from within a CellStore visitor
2016-02-05 18:29:33 +01:00
scrawl
8e5398d85b
Add missing initializations
2016-02-05 14:35:29 +01:00
scrawl
7d647088ab
Make the local map cell distance configurable
2016-02-05 01:19:45 +01:00
scrawl
bd655c20fd
Refactor local map updates
...
We don't need the delay any more because the rendering itself is part of the normal rendering traversal - so it's delayed anyway.
Don't request maps that we're not actually using (i.e. with cell grid sizes higher than the default 3, we were rendering more maps than the map window could show).
2016-02-05 01:19:45 +01:00
scrawl
300379617e
Accept a const CellStore in findInteriorPositionInWorldSpace
2016-02-05 01:19:45 +01:00
scrawl
41ebf62fb1
Accept a const CellStore in getNorthVector
2016-02-05 01:19:45 +01:00
Marc Zinnschlag
11a4a31bfd
Merge remote-tracking branch 'scrawl/localscripts'
2016-02-04 13:49:43 +01:00
scrawl
69c2c4fcc1
updateMergedRefs before reading MVRF tags ( Fixes #3161 )
2016-02-03 19:13:26 +01:00
scrawl
cc3563359e
Refactor local script iteration ( Fixes #2806 , Fixes #3108 )
...
This should be much safer. Don't use recursion. Don't fail if mIgnore happens to be in the list twice. Don't rely on preconditions / assertions.
2016-02-03 16:16:20 +01:00
scrawl
187d2bccda
Warn about adding a local script twice (Bug #2806 )
2016-02-03 16:09:10 +01:00
scrawl
aa9905b0eb
Do not crash when the water normal map is missing ( Fixes #3179 )
2016-02-03 15:24:28 +01:00
scrawl
74c18f532e
Fix comment
2016-02-03 14:40:59 +01:00
scrawl
5878291064
Fix the path correction for animation sources provided in NPC record ( Fixes #2444 )
2016-02-03 14:40:21 +01:00
scrawl
b9d1d6144a
Don't reveal unknown potion effects in alchemy window ( Fixes #3146 )
2016-02-02 22:50:11 +01:00
scrawl
d3b76b7006
Don't stack Ai packages ( Fixes #3101 , Fixes #3080 , Fixes #2697 )
2016-02-02 22:20:56 +01:00
scrawl
7aeafd3bb9
Revert "Apply the AiTravel maxRange to AiEscort as well ( Fixes #2697 )"
...
This reverts commit 1f543b4d79
.
2016-02-02 22:08:12 +01:00
scrawl
145756c0a1
Partly revert "Avoid directly iterating the actor map ( Fixes #3173 )"
...
Caused issues when a summoned creature is removed as part of the magic effect update.
Fixes #3178
2016-02-02 15:57:15 +01:00
scrawl
59d2de118f
Avoid directly iterating the actor map ( Fixes #3173 )
2016-02-02 00:50:21 +01:00
scrawl
50ed061154
AiWander: reset mAllowedNodes on cell change ( Fixes #3176 , Fixes #3130 )
2016-02-02 00:41:40 +01:00
scrawl
dda4273349
Actors that start the game as dead do not float to the surface ( Fixes #3177 )
...
This has a minor bug (can you spot it?) that affects the vanilla engine as well, unfortunately not so simple to fix.
2016-02-01 23:18:18 +01:00
scrawl
832eaae27b
Do not apply effects with CasterLinked flag when there is no valid caster
2016-02-01 22:57:08 +01:00
scrawl
c34314ae26
When an actor dies purge all spell effects cast by that actor ( Fixes #3175 )
2016-02-01 22:52:28 +01:00
scrawl
c403a6b113
Don't apply constant magic effects to dead actors ( Fixes #3174 )
2016-02-01 22:30:08 +01:00
Alexander "Ace" Olofsson
776c715ccd
Move NoTraverseCallback to mwrender/util.hpp
2016-01-29 23:21:58 +01:00
scrawl
aec8c38461
Move observer_ptr include where it belongs
2016-01-25 21:03:33 +01:00
scrawl
fc6fe9acfb
Do not crash ModVertexAlphaVisitor when there are no vertex colors
2016-01-25 18:52:20 +01:00
Tobias Kortkamp
0659687bfb
Some fixes for building on FreeBSD
2016-01-25 14:13:16 +01:00
scrawl
b0431833a1
Fix some defects reported by Coverity CI
2016-01-21 16:08:04 +01:00
scrawl
f0971ee8ad
Implement Fixme script instruction
2016-01-20 04:07:07 +01:00
scrawl
ce9a18fb87
Merge pull request #879 from jordan-ayers/bugfix/1544
...
Improve Drop Command - Bugfix/1544
2016-01-19 15:02:51 +01:00
Jordan Ayers
5699cf7f09
Barter: Leave unsold projectiles equipped.
2016-01-18 20:00:18 -06:00
Jordan Ayers
1ff49cc637
Improve Drop command behavior. ( Fixes #1544 )
2016-01-18 19:58:19 -06:00
Jordan Ayers
c82d9a1e87
Adjust ContainerStore / InventoryStore to allow partial unequip of items.
2016-01-18 19:56:35 -06:00
mrcheko
b304e98568
implement ActionWeapon::getCombatRange (move logic from AiCombat)
2016-01-15 21:49:27 +03:00
scrawl
87beb73970
Correction
2016-01-15 16:34:57 +01:00
scrawl
fbf07133ea
Document usage of node masks
2016-01-15 16:31:24 +01:00
scrawl
41c571d4f4
Merge branch 'master' of https://github.com/OpenMW/openmw into lighting
...
Conflicts:
apps/opencs/view/render/instancemode.cpp
2016-01-15 15:46:10 +01:00
scrawl
4f2a031f4e
Improve error message
2016-01-14 18:34:47 +01:00
scrawl
0b84b3c2cf
Don't crash when region weather chances don't add to 100
...
The invalid weather ID was resulting in out-of-bounds vector access later in the code.
2016-01-14 17:41:39 +01:00
Jordan Ayers
2ce2e8a1e7
Add missing OOB slot check to InventoryStore.
2016-01-12 21:35:23 -06:00
scrawl
ef1a1125e0
Fix an error in restocking logic ( Fixes #3131 )
2016-01-12 17:10:23 +01:00
scrawl
4e6a60672d
When a spell explodes on an actor do not apply it to that actor twice ( Fixes #3142 )
2016-01-12 00:40:09 +01:00
scrawl
3089aeccc4
Factor out SceneUtil::addLight
2016-01-11 23:10:16 +01:00
scrawl
438b30d6f0
Move configureLight to a separate file
2016-01-11 23:10:16 +01:00
scrawl
6546c05428
Move Fallback map to components/
2016-01-11 23:10:16 +01:00
scrawl
f315a4386f
Accept an implicit reference in Journal ( Fixes #3135 )
2016-01-11 23:07:01 +01:00
scrawl
ef20962fc5
Disable fog of war rendering on the HUD map by default
2016-01-11 22:58:08 +01:00
scrawl
ca4e859f61
Remove unused argument
2016-01-11 22:58:01 +01:00
scrawl
4690fd3f22
Change the local map exploration radius to better match the original engine
2016-01-11 22:57:57 +01:00
scrawl
4f8f166f69
Fix GetPcInJail to work as in the original engine
2016-01-11 22:57:25 +01:00
scrawl
190bf15887
SettingsWindow: support auto-updating of slider labels through the layout file
2016-01-11 22:57:16 +01:00
scrawl
745b29a995
Remove a debugging leftover
2016-01-05 17:01:21 +01:00
scrawl
d9d6228c94
Implement PageDisplay::_updateView ( Fixes #3125 )
2016-01-05 16:54:09 +01:00
scrawl
5952498e9e
Explicitely cast a size_t to int
2016-01-05 16:53:51 +01:00
scrawl
446c714727
Fix a possible memory leak in error case
2016-01-04 20:39:08 +01:00
scrawl
e6619c5306
Rebuild actor animations on resurrection ( Fixes #3124 )
...
A new animation is necessary to set up the correct InventoryStore listener, to get notified of changes like the actor no longer being a werewolf, etc.
2016-01-04 20:27:38 +01:00
scrawl
daa94cc50e
Fix cppcheck warnings
2016-01-03 20:19:38 +01:00
mrcheko
bcb1f4ed05
refactor AiCombat: remove all pathfinding code, adopt new version of
...
AiPackage::pathTo;
fix couple of warnings;
2016-01-03 15:33:52 +03:00
Poncho
b1020dcd42
Use correct direction multipliers during awareness check
2016-01-02 12:24:39 -06:00
scrawl
1905f0bf2d
Add support for placing BodyParts in a cell (Bug #3118 )
2016-01-02 01:30:06 +01:00
scrawl
a9f0f30bb8
Reject conditions testing agaist Choice when not currently in a choice ( Fixes #3117 )
2016-01-01 23:55:52 +01:00
mrcheko
b960b0af93
rewrite pathTo for clearer logic; reapply Scrawl's aifollow threshold
2016-01-01 16:41:45 +03:00
scrawl
0333c40047
Fix typo in SameRace dialogue function (function was inverted, Fixes #3116 )
2016-01-01 02:59:55 +01:00
scrawl
6fde02ea42
LocalScripts: initialize mIter
2016-01-01 02:59:55 +01:00
scrawl
7f7e8c63bf
Correct path to gamecontrollerdb.txt ( Fixes #3112 )
2015-12-31 00:37:47 +01:00
mrcheko
d7d5cc6689
Merge remote-tracking branch 'upstream/master' into pathfinding
...
Conflicts:
apps/openmw/mwmechanics/aicombat.cpp
apps/openmw/mwmechanics/aifollow.cpp
apps/openmw/mwmechanics/aipackage.cpp
apps/openmw/mwmechanics/aipackage.hpp
apps/openmw/mwmechanics/aiwander.cpp
apps/openmw/mwmechanics/pathfinding.hpp
Ogre::Vector3->osg::Vec3f; REACTION_INTERVAL->AI_REACTION_TIME; MakeOgreVec3->MakeOsgVec3
2015-12-29 19:15:40 +03:00
scrawl
63b9b075aa
Do not allow soul trapping the same creature more than once ( Fixes #3102 )
2015-12-26 18:47:22 +01:00
scrawl
0bec6e5fbe
Fix 'failed to find animation' warnings when a spell was equipped before the werewolf transformation
2015-12-26 18:45:09 +01:00
scrawl
6b67911658
Unset DrawState_Spell when becoming a werewolf
2015-12-26 18:26:55 +01:00
scrawl
f052c05018
Move werewolf functions from World to MechanicsManager
2015-12-26 18:23:13 +01:00
scrawl
53334d08a2
Disable Ready Magic and Cycle Weapon/Spell hotkeys for werewolves ( Fixes #3100 )
2015-12-26 18:15:57 +01:00
scrawl
a1e163ed20
Correct an error in the timestamp subtracting logic ( Fixes #3105 )
2015-12-26 00:26:13 +01:00
scrawl
db7b80b503
Revert "Accept a ConstPtr in ItemPtr tooltips"
...
This reverts commit 41c8ec56e0
.
Does not work due to code relying on getting the non-const Ptr from the widget. Further refactoring is needed.
2015-12-19 22:52:35 +01:00
scrawl
2176ac592c
Call updateDialogueGlobals before dialogue starts ( Fixes #3034 )
2015-12-19 21:58:49 +01:00
scrawl
5ac226f519
Another collision mask fix
2015-12-19 17:02:57 +01:00
scrawl
e5d9ee30f4
Add count argument to copyObjectToCell
...
Fixes the gold bug introduced in c9ca5bc946
2015-12-19 16:48:32 +01:00
scrawl
41c8ec56e0
Accept a ConstPtr in ItemPtr tooltips
2015-12-19 16:37:26 +01:00
scrawl
5a7bbbd508
Accept a ConstPtr in ToolTips::setFocusObject
2015-12-19 16:34:26 +01:00
scrawl
32d5dece58
Add count argument to getToolTipInfo
2015-12-19 16:29:07 +01:00
scrawl
0d4729dcd5
Use the const version of CustomData::as*
2015-12-19 16:19:52 +01:00
scrawl
16e3699739
Fix collision mask in castSphere
2015-12-19 16:18:12 +01:00
scrawl
b0894ea20d
Accept a ConstPtr in hasToolTip
2015-12-19 16:15:45 +01:00
scrawl
29d0f448b4
Add const version of World::getAnimation
2015-12-19 16:15:45 +01:00
scrawl
51c77c5045
Accept a ConstPtr in getDoorState
2015-12-19 16:15:45 +01:00
scrawl
7a2ca5580a
Accept a ConstPtr in RippleSimulation
2015-12-19 15:51:41 +01:00
scrawl
53f4b92426
AiEscort do not follow target through doors
...
Testing revealed a problem where the guard on the prison ship would incorrectly follow the player outside. Upon further investigation in vanilla MW, it appears that with AiEscort the actor only follows the target through doors once the AiEscort package has completed, *and* no new AI package is running yet.
2015-12-19 15:15:44 +01:00
scrawl
2c51e7345f
Use a separate collision type for doors ( Fixes #1962 )
2015-12-18 18:32:42 +01:00
scrawl
604b5d24e9
Use a ConstPtr in SoundManager
2015-12-18 18:11:30 +01:00
scrawl
a0fb31e3b1
Accept a ConstPtr in getLOS
2015-12-18 18:03:47 +01:00
scrawl
029d467ea5
Accept a ConstPtr in getItemsOwnedBy, getContainersOwnedBy
2015-12-18 18:00:18 +01:00
scrawl
388aed1748
Accept a ConstPtr in findContainer, collision script functions, getUnderwater functions
2015-12-18 17:56:48 +01:00
scrawl
ed101ad35a
Remove redundant getPlayerAnimation function
2015-12-18 17:44:57 +01:00
scrawl
c9ca5bc946
Accept a ConstPtr in placeObject
2015-12-18 17:42:59 +01:00
scrawl
6c505ca06f
Accept a ConstPtr in getHitContact
2015-12-18 17:38:21 +01:00
scrawl
0796f49c17
Accept a ConstPtr in various physics getters
2015-12-18 17:36:14 +01:00
scrawl
795032621c
Use a ConstPtr for the ActorMap and ObjectMap
2015-12-18 17:30:39 +01:00
scrawl
7a8a7e3dd6
Add const version of getAnimation
2015-12-18 17:21:51 +01:00
scrawl
7a4aac1842
Use a ConstPtr for the PtrAnimationMap
2015-12-18 17:20:29 +01:00
scrawl
553132cb51
Accept a ConstPtr in launchProjectile
2015-12-18 17:13:54 +01:00
scrawl
8f9fc87565
Accept a ConstPtr in LocalScripts::setIgnore
2015-12-18 17:09:11 +01:00
scrawl
1212c07266
Pass a string by reference
2015-12-18 17:08:26 +01:00
scrawl
f35ab12979
Accept a ConstPtr in InventoryStore::isEquipped
2015-12-18 17:06:58 +01:00
scrawl
3856f931db
Accept a ConstPtr in ContainerStore::addNewStack
2015-12-18 17:04:54 +01:00
scrawl
e1c6261fee
Accept a ConstPtr in ContainerStore::getType
2015-12-18 17:03:49 +01:00
scrawl
edde5bd065
Accept a ConstPtr in ContainerStore::stacks
2015-12-18 17:01:21 +01:00
scrawl
04f7a8f8eb
Remove redundant getId function
2015-12-18 16:58:38 +01:00
scrawl
266fbbef48
Accept a ConstPtr in canLock
2015-12-18 16:50:32 +01:00
scrawl
c43f80633a
Accept a ConstPtr in getEnchantmentPoints
2015-12-18 16:48:19 +01:00
scrawl
303521002d
Accept a ConstPtr in adjustScale
2015-12-18 16:46:02 +01:00
scrawl
09bdb0ad4b
Accept a ConstPtr in getServices
2015-12-18 16:44:35 +01:00
scrawl
648ee6e7fb
Accept a ConstPtr in applyEnchantment
2015-12-18 16:43:11 +01:00
scrawl
3c98f8dde3
Accept a ConstPtr in isPersistent
2015-12-18 16:41:37 +01:00
scrawl
3fe3091275
Accept a ConstPtr in isEssential
2015-12-18 16:39:35 +01:00
scrawl
4a47fc32fa
Accept a ConstPtr in getBloodTexture
2015-12-18 16:39:08 +01:00
scrawl
2bd8d60e9f
Accept a ConstPtr in getPrimaryFaction, getPrimaryFactionRank
2015-12-18 16:33:54 +01:00
scrawl
2ac92012e8
Accept a ConstPtr in isClass
2015-12-18 16:29:30 +01:00
scrawl
5b082be79f
Accept a ConstPtr in getBaseGold
2015-12-18 16:28:20 +01:00
scrawl
da7ebfde99
Accept a ConstPtr in copyToCell
2015-12-18 16:27:18 +01:00
scrawl
954186fe1e
Accept a ConstPtr in canFly, canSwim & canWalk
2015-12-18 16:27:18 +01:00
scrawl
b09bdd6af5
Accept a ConstPtr in isBipedal
2015-12-18 16:27:18 +01:00
scrawl
92a3acfa56
Accept a ConstPtr in getBaseFightRating
2015-12-18 16:12:35 +01:00
scrawl
d120f76031
Accept a ConstPtr in getSound
2015-12-18 16:11:03 +01:00
scrawl
d77f785cbc
Accept a ConstPtr in get*SoundId
2015-12-18 16:09:54 +01:00
scrawl
dc92fefd2b
Accept a ConstPtr in canBeEquipped, getEquipmentSlots & hasItemHealth
2015-12-18 16:06:31 +01:00
scrawl
e0bb284804
Accept a ConstPtr in getWeight
2015-12-18 16:00:50 +01:00
scrawl
0047a2d330
Accept a ConstPtr in canSell
2015-12-18 15:58:45 +01:00
scrawl
2bc851c7d3
Accept a ConstPtr in getEnchantment
2015-12-18 15:56:45 +01:00
scrawl
beb8805a12
Accept a ConstPtr in getInventoryIcon
2015-12-18 15:53:47 +01:00
scrawl
f258c5c508
Accept a ConstPtr in getModel
2015-12-18 15:51:05 +01:00
scrawl
d9bbd83b09
Accept a ConstPtr in getToolTipInfo
...
Accept a ConstPtr in functions used by getToolTipInfo
2015-12-18 15:47:16 +01:00
scrawl
d3d6a69eea
Merge pull request #862 from scrawl/const
...
ConstPtr
2015-12-18 15:20:34 +01:00
scrawl
bc50587e71
Remove comment
2015-12-18 14:33:15 +01:00
scrawl
b2add6470b
Missing include fix
2015-12-18 02:58:38 +01:00
scrawl
1c8244276d
Exception handling improvements (Bug #3090 )
2015-12-18 02:36:34 +01:00
scrawl
a344183247
Comment fix
2015-12-18 02:34:42 +01:00
scrawl
ed3486e816
Improve const-correctness in writeAdditionalState
2015-12-18 00:19:06 +01:00
scrawl
b48445dea7
Accept a ConstPtr in getScript
2015-12-18 00:12:03 +01:00
scrawl
eb51e2838f
Utilize the mHasCustomData flag in writeAdditionalState
2015-12-18 00:07:40 +01:00
scrawl
19d87c78f2
Add CellStore::forEachConst
2015-12-17 23:59:18 +01:00
scrawl
d4eba794c3
Add ConstPtr
2015-12-17 23:34:52 +01:00
scrawl
c9d02c67c0
Remove unneeded const_cast in TerrainStorage
2015-12-17 23:33:47 +01:00
scrawl
2fe2f53b02
Set the changed flag in CellStore::search ( Fixes #3089 )
2015-12-17 22:37:41 +01:00
scrawl
04b6571d7d
Fix logic for scripting access of deleted objects
2015-12-17 20:34:50 +01:00
scrawl
e564c26314
Fix deleted objects being accessible in the Cells cache
2015-12-17 20:18:15 +01:00
scrawl
deb7f3caf6
Print deletion state in ObjectReferenceInfo
2015-12-17 20:17:38 +01:00
scrawl
689dea4cb3
Add instant spell effects to the actor's magic effect list
...
Via http://forum.openmw.org/viewtopic.php?f=2&t=3212&start=20#p36208
2015-12-17 19:49:37 +01:00
scrawl
d6bcb7906d
Fix crash in a warning message
2015-12-17 16:11:20 +01:00
scrawl
fce43854bc
Fix last commit
2015-12-17 03:50:15 +01:00
scrawl
0a723ab075
Animation: do not assume the object root is a Group
2015-12-17 03:48:11 +01:00
scrawl
31c3324705
Don't assume the emitter node is a Group ( Fixes #3082 )
...
This would be a correct assumption by default, but is no longer true when the NifLoader::optimize() function optimizes the graph.
2015-12-17 03:38:26 +01:00
scrawl
8222c78cf2
Do not filter creature dialogue by NPC-only conditions ( Fixes #3086 )
2015-12-16 01:30:04 +01:00
scrawl
d5a2586f38
LoadingScreen: add support for important labels
...
Used in saveGame so the player can be sure whether or not the game was saved.
Fixes #3074
2015-12-15 21:16:20 +01:00
scrawl
67883feaae
LoadingScreen: ensure values are within progress range
2015-12-15 21:05:35 +01:00
scrawl
625644e917
LoadingScreen: documentation updates
2015-12-15 21:03:56 +01:00
scrawl
152f1d625d
LoadingScreen: remove unused declarations
2015-12-15 20:54:21 +01:00
scrawl
ccbba5e926
LoadingScreen: remove indicateProgress, not used
2015-12-15 20:52:23 +01:00
scrawl
375caf037d
Don't applyInstantEffect when magnitude is zero
2015-12-15 20:46:05 +01:00
scrawl
4af376133b
Don't tick effects when duration is zero
2015-12-15 20:41:00 +01:00
scrawl
4553db7b43
Merge pull request #861 from scrawl/soundcrash
...
Fix crash when running out of sound sources
2015-12-15 18:23:03 +01:00
scrawl
6a749e77f2
Fix crash when running out of sound sources
2015-12-15 15:12:48 +01:00
Chris Robinson
cddea4a99c
Start underwater sound after updating sounds
...
In between the startUpdate/finishUpdate calls, changes are deferred so that
they can happen all at once. This includes starting sounds, so when the
underwater sound is started it will be immediately checked to see if it's
playing. Since it's not yet playing, it'll be seen as stopped and get cleaned
up before ever playing.
2015-12-14 14:05:01 -08:00
Marc Zinnschlag
346052a67a
Merge remote-tracking branch 'scrawl/containerscript_fix'
2015-12-14 14:19:05 +01:00
scrawl
572786bff2
Instant effects that were added by a permanent ability are applied every frame
...
Via http://forum.openmw.org/viewtopic.php?f=2&t=3212&p=36120#p36121
2015-12-14 03:27:49 +01:00
scrawl
271fcb80c6
Remove container scripts before deleting container
2015-12-14 02:57:55 +01:00
Chris Robinson
8c364cd818
Remove left over declaration
2015-12-13 17:13:36 -08:00
Chris Robinson
12eda97e64
Merge remote-tracking branch 'main/master'
2015-12-13 17:06:04 -08:00
Chris Robinson
f1faeeae3a
Use separate config options for min and mag texture filters
2015-12-13 17:05:19 -08:00
scrawl
2737aabe93
Pc functions apply to creature dialogue ( Fixes #3078 )
2015-12-14 01:52:13 +01:00
Chris Robinson
5c0a847eaf
Combine some duplicate code
2015-12-13 16:51:27 -08:00
Chris Robinson
b830a413d3
Rename the texture filter options
...
To avoid compatibility issues with upgrading from or downgrading to older
builds.
2015-12-13 16:02:09 -08:00
Chris Robinson
646092ce3a
Add warnings when loading unknown texture options
2015-12-13 15:20:59 -08:00
Chris Robinson
fb6abb53ae
Simplify the in-game texture options
...
This makes it behave like it originally did, although the config options remain
expanded.
2015-12-13 15:02:36 -08:00
Chris Robinson
76bde5ee13
Separate and expand texture filtering options
2015-12-13 11:25:01 -08:00
scrawl
a7e0562e1c
Fix improper handling of multiple AiFollow packages with the same target ( Fixes #3077 )
2015-12-13 17:42:11 +01:00
scrawl
64424e7262
Move keyframe loading out of SceneManager to new KeyframeManager
2015-12-13 15:31:07 +01:00
scrawl
359b0b3772
Rename for clarity
2015-12-12 22:37:23 +01:00
scrawl
18cce3a6f9
Don't reset delete flag when loading reference from a save game ( Fixes #2724 )
2015-12-12 22:34:59 +01:00
scrawl
850092a5e5
Store: be consistent about struct / class usage
...
Don't inherit a struct from a class, and vice versa.
2015-12-12 22:34:59 +01:00
Chris Robinson
f47f0a996f
Stop the object's old say sound before playing the new one
2015-12-11 15:49:45 -08:00
Chris Robinson
7fc2df153a
Rename stopSound/stopStream to finishSound/finishStream
...
Since they're also used to clean up output resources, not just stopping.
2015-12-11 15:13:14 -08:00
scrawl
cc2315a0de
Minor fix
2015-12-11 16:59:13 +01:00
scrawl
b856460f86
ESMStore: fill mIds in setUp()
2015-12-11 16:55:28 +01:00
scrawl
ed27f0da25
Merge pull request #854 from kcat/master
...
Play NPC voices from the head position
2015-12-11 16:21:06 +01:00
Chris Robinson
808f701013
Use the actor's Head position for Say streams
2015-12-10 17:48:45 -08:00
Chris Robinson
a47bdecac7
Add missing include
...
Since Ptr is used directly in the header, a forward declaration isn't good
enough.
2015-12-10 17:47:55 -08:00
Chris Robinson
a00a4bce77
Avoid some unnecessary indirection
2015-12-10 16:33:27 -08:00
scrawl
f1f82af64e
Fix improper swimming animations in first person mode
2015-12-11 01:24:42 +01:00
scrawl
9bc6f2d5f6
Fix water ripples
2015-12-09 20:35:51 +01:00
scrawl
57b7cac13f
Merge pull request #850 from MatthewRock/fix-2952-2
...
Fix for bug #2952 : Enchantment Merchant Items reshuffled EVERY time 'barter' is clicked
2015-12-09 20:12:45 +01:00
MatthewRock
ddd4004c95
Fix: remove space
2015-12-09 18:26:33 +01:00
MatthewRock
3b254ad631
Allows the same item to have multiple ancestors
2015-12-09 18:24:35 +01:00
scrawl
a8c287c831
Print detected game controllers to the log file
2015-12-09 14:33:02 +01:00
scrawl
bdae572264
Merge pull request #840 from scrawl/movedrefs
...
Object movement between cells
2015-12-09 14:10:57 +01:00
scrawl
6f98982bc2
Make sure that health is >= 1 when resurrecting the player ( Fixes #2972 )
2015-12-09 01:52:20 +01:00
scrawl
05f1fbf593
WindowManager: explicitely pass the ESMStore
...
Fixes potential crash when the loading screen layout tries to retrieve a GMST value via #{GMST} syntax before the World has been created.
Possibly related to Bug #2854 .
2015-12-09 01:09:09 +01:00
scrawl
a699b4128a
Add isInCell checks to PlaceAt and PlaceItem ( Fixes #2873 )
...
Avoids the game crashing when a script calls these functions before the player has been moved to the starting location.
2015-12-09 00:49:50 +01:00
scrawl
34f48d63f3
Apply spell absorption once per effect ( Fixes #2942 )
2015-12-09 00:35:54 +01:00
scrawl
bc1f7499ab
Do not allow deleting the player object ( Fixes #2982 )
2015-12-09 00:26:39 +01:00
MatthewRock
b0e6a52595
Replace ancestor with parent
2015-12-08 22:45:16 +01:00
MatthewRock
aa721fe1f6
Fix bug 2952 with merchant and levelled items
2015-12-08 22:39:11 +01:00
scrawl
1264651af7
Fix coverity defects
2015-12-08 21:12:05 +01:00
scrawl
e69750905a
Fix gcc warning about function casts
2015-12-08 16:51:50 +01:00
scrawl
bd68ebac62
GetEffect fix
2015-12-08 15:24:02 +01:00
scrawl
3890afd6f5
Merge pull request #843 from kcat/master
...
Add HRTF options and fix an incorrect SoundID
2015-12-08 13:59:15 +01:00
Marc Zinnschlag
071ba3a4df
Merge remote-tracking branch 'scrawl/werewolf'
2015-12-08 09:28:35 +01:00
scrawl
07b064f616
Rename to lowerCaseInPlace
2015-12-07 22:49:15 +01:00
scrawl
f875597be5
Don't use tolower()
...
See https://forum.openmw.org/viewtopic.php?f=8&t=3231&p=35968
2015-12-07 21:58:30 +01:00
scrawl
1a654fa451
Reset locale after strftime() call
2015-12-07 21:24:30 +01:00
scrawl
152f415b9a
Change texture coordinates when falling back to player_hit_01
2015-12-07 18:32:58 +01:00
scrawl
998ef36837
Setting fix
2015-12-07 18:04:23 +01:00
scrawl
e520d37c87
Override the field of view for first person meshes ( Fixes #858 , Fixes #3051 )
2015-12-07 16:29:30 +01:00
scrawl
9621b66b78
Move field of view setting to Camera section
2015-12-07 16:23:06 +01:00
scrawl
136a425cec
Use the Werewolf field of view override ( Fixes #3064 )
...
Need to re-run the settings importer for the feature to work.
2015-12-07 16:11:47 +01:00
scrawl
9d4af59860
Don't attempt to create quest log buttons if textures are unavailable ( Fixes #3063 )
2015-12-07 15:33:04 +01:00
scrawl
5981e1cbb3
Don't create the werewolf overlay if its texture is not available
...
Avoiding a warning in the log when Bloodmoon is not installed
2015-12-07 14:41:33 +01:00
scrawl
621347b20f
Remove moved ref handling from listRefs()
...
Not needed since we now load cells when a reference is moved there.
2015-12-07 03:55:26 +01:00
scrawl
1875aa4a18
Restore getNearbyDoor
2015-12-07 03:53:46 +01:00
scrawl
f9dd549bff
Restore FindContainerVisitor
2015-12-07 03:47:40 +01:00
scrawl
1f543b4d79
Apply the AiTravel maxRange to AiEscort as well ( Fixes #2697 )
2015-12-07 00:26:17 +01:00
scrawl
65b5cbe3f7
AiEscortCell complains if no cell was given or cell does not exist
2015-12-06 23:42:58 +01:00
scrawl
965bea45c0
AiEscort makes the actor side with target in fights (Bug #2697 )
...
Also will follow the player through teleport doors.
2015-12-06 23:38:51 +01:00
scrawl
4e678ce6b3
Handle mCellId in AiEscort
2015-12-06 23:38:51 +01:00
scrawl
45a609bc54
Improve PositionCell warning message
2015-12-06 22:37:04 +01:00
scrawl
4b0ecaa0a0
Fix physics bug
2015-12-06 22:10:01 +01:00
scrawl
51b892195b
Restore getReadOnlyDoors()
2015-12-06 21:58:25 +01:00
scrawl
abcf91be5b
Port over more game logic to the visitor pattern
2015-12-06 20:43:50 +01:00
scrawl
9ea475d00c
Port LocalScripts::addCell to new CellStore interfaces
2015-12-06 20:33:22 +01:00
scrawl
a517f4f9ba
Add CellStore::forEachType to help with porting over game logic to the new interfaces
2015-12-06 20:32:39 +01:00
scrawl
0af33b5abd
Throw exception if moveTo() is passed an object not part of *this
2015-12-06 20:05:13 +01:00
scrawl
176a3c16f4
Resolve moved references loaded from a save game
2015-12-06 20:00:24 +01:00
scrawl
671561ea37
Write moved references to the save game file (not resolved on loading yet)
2015-12-06 19:11:25 +01:00
scrawl
2219231230
Missing updateMergedRefs()
2015-12-06 18:46:49 +01:00
scrawl
138957c49a
Special case objects with no refnum
2015-12-06 18:43:52 +01:00
scrawl
5e99a3eda6
Rename CellStore Functor to Visitor
2015-12-06 18:13:04 +01:00
scrawl
2301080c63
Load CellStore when an object is moved there
2015-12-06 18:04:48 +01:00
scrawl
811df1e97b
Pass the ESM reader list to CellStore constructor
2015-12-06 18:03:55 +01:00
Paul Cercueil
0765ff3ba2
mwrender: Add missing includes
...
Those missing includes were causing the build to fail when compiled with
USE_GLES set.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2015-12-06 16:01:21 +01:00
Chris Robinson
91cd6be11b
Use the correct SoundId for NPC "land" sounds
2015-12-05 18:00:28 -08:00
Chris Robinson
c75303b652
Add an option to select and enable HRTF
2015-12-05 17:14:53 -08:00
Marc Zinnschlag
03a0b1fbfd
Merge remote-tracking branch 'origin/master'
2015-12-05 15:41:20 +01:00
scrawl
53158d29b1
stopSound crash fix
2015-12-05 01:54:16 +01:00
scrawl
66bcd2fd68
Write save games to a memory stream first
...
Two motivations for doing this:
- If the user chooses to overwrite existing save file, and there is an exception during the save process, the existing file will not be lost.
- Many small writes to a file are slow. Very slow. Writing to memory first then writing the completed file to disk appears to be ~500% faster.
2015-12-05 01:15:54 +01:00
scrawl
67a6a8f5d4
Make projectiles receive lighting
2015-12-05 00:44:18 +01:00
scrawl
6181594251
Disable freezeOnCull for magic projectile particles
2015-12-05 00:33:01 +01:00
scrawl
a8938589f6
Magic projectiles rotate during flight
2015-12-05 00:33:01 +01:00
scrawl
3f93af4181
Projectiles interact with the water surface ( Fixes #2986 )
2015-12-04 23:28:11 +01:00
scrawl
3dcefd17fc
Fix CellStore::count()
2015-12-04 20:03:14 +01:00
scrawl
3aa53f3cb4
Object cell movement tracker works. Savegame handling is still missing and some game functionality is still stubbed out.
2015-12-04 19:46:02 +01:00
scrawl
64b4926127
Add reference moving logic - untested
2015-12-04 18:29:41 +01:00
scrawl
7a983340bf
Add comment
2015-12-04 18:29:41 +01:00
scrawl
fc449233be
Restore support for inserting objects into a cell
2015-12-04 18:29:41 +01:00
scrawl
0975f60d59
Stub out CellStore::get<T> accessors in preparation of reference movement between cells
2015-12-04 18:29:41 +01:00
Marc Zinnschlag
49b37ce8bf
Merge remote-tracking branch 'scrawl/geteffect'
2015-12-04 10:42:22 +01:00
scrawl
8e9571d155
Double buffer the light StateAttributes and StateSets
...
Fixes a race condition where the position of a light could jump a frame ahead.
2015-12-04 00:06:22 +01:00
scrawl
f22982d251
Merge pull request #835 from sandstranger/opengles1
...
enable opengl es1
2015-12-03 21:25:00 +01:00
scrawl
5f349b9a6e
Support effects with attribute/skill argument in OpGetEffect
2015-12-03 21:12:58 +01:00
scrawl
1ec338f19d
Don't attempt to load external keyframes for non-NIF files
2015-12-03 20:11:28 +01:00
scrawl
795f6d77f2
Cache the Animation's Skeleton
2015-12-03 20:06:00 +01:00
Marc Zinnschlag
e0c9265148
Merge remote-tracking branch 'origin/master'
2015-12-03 15:56:24 +01:00
scrawl
389b168d5f
Restore OpGetWaterLevel to vanilla behaviour
2015-12-03 15:48:27 +01:00
scrawl
d0c6b407b4
Fix isUnderwater checks being off by one for exterior cells
2015-12-03 15:16:50 +01:00
scrawl
86881bcf39
In first person mode, attach sound listener to the camera
2015-12-03 15:16:20 +01:00
sandstranger
238a5824be
add custom new variable fot Qt
2015-12-03 08:54:14 +03:00
Chris Robinson
f19f1c47c8
Fix playing pending voices without a Ptr
2015-12-02 16:09:25 -08:00
Chris Robinson
2face3d0a9
Combine duplicate code
2015-12-02 16:09:25 -08:00
Chris Robinson
1407366e51
Use a premade SoundStream object for the output's streamSound functions
2015-12-02 16:09:25 -08:00
Chris Robinson
2ee3265b66
Use a premade Sound object for the output's playSound functions
2015-12-02 16:09:25 -08:00
Chris Robinson
53718a5ca0
Use a typedef for the sound instance handle
2015-12-02 16:09:25 -08:00
Chris Robinson
3a39a92b93
Keep track of audio tracks
2015-12-02 16:09:24 -08:00
Chris Robinson
2883cdba5c
Initialize the Sound object before modifying the pitch variable
2015-12-02 16:09:24 -08:00
Chris Robinson
a6db96b2d8
Update sound and stream parameters
2015-12-02 16:09:24 -08:00
Chris Robinson
4bd235284b
Rename a couple members to avoid confusion
2015-12-02 16:09:24 -08:00
Chris Robinson
1ce3e7f5b9
Use a separate type for streams
...
They're basically the same, but it's to help avoid accidents with passing non-
streaming sounds to the stream functions, or vice-versa.
2015-12-02 16:09:24 -08:00
Chris Robinson
816015d6e6
Avoid inheriting from Sound for sound types
2015-12-02 16:09:24 -08:00
sandstranger
b0b3192520
delete bad symbol
2015-12-02 22:50:54 +03:00
sandstranger
bd5057aa3c
enable opengl es1
2015-12-02 22:40:04 +03:00
scrawl
3d12b2ca9d
Add NifFileManager to avoid duplicate parsing of the NIFFile in SceneManager and BulletShapeManager.
2015-12-02 14:59:32 +01:00
scrawl
c912310c52
Don't add persuasion results to the journal
2015-12-01 16:16:21 +01:00
scrawl
2327a41826
Fix journal freeze
2015-12-01 16:09:05 +01:00
scrawl
ba5433391f
Merge pull request #831 from ace13/win-fix
...
Fix windows builds
2015-12-01 01:03:16 +01:00
Alexander "Ace" Olofsson
24340bff95
Add a space
2015-11-30 17:47:36 +01:00
Alexander "Ace" Olofsson
6823298516
Different way to solve the type deduction issue
2015-11-30 17:42:25 +01:00
Alexander "Ace" Olofsson
a69e751089
Revert "Fix windows builds"
...
This reverts commit b085c09f86
.
2015-11-30 17:38:46 +01:00
scrawl
f5f3d18b8e
Add comment
2015-11-30 17:19:27 +01:00
scrawl
576d5111a5
Prefer Intersector::PROJECTION over Intersector::WINDOW
2015-11-30 17:04:45 +01:00
scrawl
14b143231c
Don't crash OpGetTarget when the target disappeared ( Fixes #3048 )
2015-11-30 15:26:43 +01:00
Alexander "Ace" Olofsson
b085c09f86
Fix windows builds
...
Can't instantiate a container (at least with MSVC) without knowing the exact size of the object being stored, forward-declares only work with pointers.
I couldn't see a simple way to remove the forward declare, so pointers and memory management it is.
2015-11-30 13:36:15 +01:00
Marc Zinnschlag
3a81bed001
Merge remote-tracking branch 'origin/master'
2015-11-30 12:12:18 +01:00
Marc Zinnschlag
7cc8fbfb3c
Merge remote-tracking branch 'scrawl/dynamic_cast2'
2015-11-30 12:11:00 +01:00
scrawl
0655abcd8b
Fix some character preview raycasting issues (Bug #2769 )
2015-11-30 05:43:36 +01:00
scrawl
8fb328ef4f
Fix updating of character preview size in InventoryWindow::setGuiMode
2015-11-30 05:43:36 +01:00
scrawl
d2290a8183
Don't crash when Water_SurfaceFrameCount is 0
2015-11-30 00:41:26 +01:00
scrawl
d5a738bd39
Apply 27e669296e
(locale-unaware tolower) to more code
...
In particular, the one in VFS::normalizeFilename was affecting cell loading performance.
2015-11-30 00:38:52 +01:00
scrawl
f962ce0bbe
Don't link against unnecessary OSG libraries
2015-11-29 19:56:43 +01:00
scrawl
cd4a1ffd16
Fast version of dynamic_cast for MWClass
2015-11-29 14:26:52 +01:00
Marc Zinnschlag
20a076bdba
Merge remote-tracking branch 'origin/master'
2015-11-29 09:34:41 +01:00
Marc Zinnschlag
6df626ad71
Merge remote-tracking branch 'scrawl/crashcatcher'
2015-11-29 09:23:14 +01:00
scrawl
db71634a2d
Allow replacing of interactive message boxes ( Fixes #3040 )
2015-11-28 19:15:54 +01:00
scrawl
c9bfe01120
Fix applying of weather changes after serving a jail sentence
2015-11-28 17:57:35 +01:00
Marc Zinnschlag
6facce9d13
Merge remote-tracking branch 'origin/master'
2015-11-28 10:02:37 +01:00
Marc Zinnschlag
ff5582e318
Merge remote-tracking branch 'scrawl/ltex'
2015-11-28 09:51:57 +01:00
scrawl
a1fa1b2b2e
Don't attempt to open an empty texture
2015-11-28 06:01:24 +01:00
scrawl
d97dda05c9
Don't attempt to play unset weather sounds
2015-11-28 05:55:36 +01:00
scrawl
93a76e2f56
Revert debce0fb80
, use a sleep() to work around the X11 bug
...
Problem with debce0fb80
is the crashed process won't be killed until the user accepts the message box, and it's harder to get to the message box when the window is in full screen or the cursor is locked.
2015-11-28 05:42:05 +01:00
scrawl
debce0fb80
crashcatcher: show the message box before killing crashed process
...
This change fixes a random X server lock-up that I get about 1 in 10 times when a crash is caught. I'm presuming it's an X server bug since faulty applications shouldn't be able to crash or freeze the X server under any circumstances.
2015-11-28 05:14:30 +01:00
scrawl
35fa1f5865
Not found Land Textures are no longer a fatal error (Bug #3037 )
...
Log warning message and show the default texture when encountering invalid ESM::LandTexture references.
2015-11-27 21:57:24 +01:00
scrawl
4687c4baad
Do not assert() for invalid land data in plugins (Bug #3037 )
...
The resizing of LTEX store to the correct number of plugins was done in the load() method, but the load method won't be called if a plugin contains LAND records but doesn't contain LTEX records. For such plugins the Store<ESM::LandTexture>::search() function would then fail an assertion.
2015-11-27 21:57:15 +01:00
scrawl
5b8fd79b4b
Fix crash when exception is thrown in startNewGame()
2015-11-27 21:38:57 +01:00
scrawl
89783e047b
Fix typo
2015-11-27 19:40:31 +01:00
Chris Robinson
4ee409af84
Load loudness data asynchronously
...
Currently abuses the output audio streams' background processing thread to do
the work, since there's no generalized threaded processing mechanism.
2015-11-27 09:47:14 -08:00
Chris Robinson
0f05ccf72a
Use a non-recursive mutex and properly end the streaming thrread
2015-11-27 08:13:23 -08:00
Chris Robinson
b5ed2e65f8
Add a method to get the sound stream delay
...
This helps avoid a lock during the movie player's read method, since it needs
to sync with the current playback position which would otherwise need to get
the movie decoder's current position.
2015-11-27 06:01:50 -08:00
Chris Robinson
f3c035907c
Rename Sound::update to Sound::applyUpdates
2015-11-27 04:55:17 -08:00
Chris Robinson
9568aa6a84
Use a condition variable to wake up the audio stream thread
...
This should make starting streams a bit more responsive, and allows us to do
more in it that really shouldn't wait for its next wake up.
2015-11-27 04:30:09 -08:00
Chris Robinson
4a078725d4
Play player voices locally
2015-11-27 02:57:44 -08:00
Chris Robinson
449eca4fb4
Properly mark streams as 2D or 3D
2015-11-27 02:36:33 -08:00
Chris Robinson
21bb2e9314
Use a deque for loudness buffers with a map lookup
...
Similar to Sound_Buffer, this allows individual Sound_Loudness objects to
retain a constant pointer when new ones are inserted on to the end.
2015-11-27 02:01:18 -08:00
Chris Robinson
5f8a09df97
Play player sounds (except footsteps) local to the listener
2015-11-27 02:01:18 -08:00
Chris Robinson
82f3651f81
Treat the sound offset as the offset in seconds
2015-11-27 02:01:17 -08:00
Chris Robinson
8b7587f9a6
Track whether a sound is 3D
2015-11-27 02:01:17 -08:00
Chris Robinson
fc912b135f
Avoid unnecessarily friending classes
2015-11-27 02:01:17 -08:00
Marc Zinnschlag
7cc950ed64
Merge remote-tracking branch 'origin/master'
2015-11-27 10:34:22 +01:00
Marc Zinnschlag
b3532b6274
Merge remote-tracking branch 'scrawl/spells'
2015-11-27 10:21:17 +01:00
scrawl
44dd62067e
Remove some unnecessary per-frame store searches
2015-11-27 02:13:56 +01:00
scrawl
783594033a
Optimize MWMechanics::Spells
...
Use pointers as map keys instead of string IDs. Resolves a nasty performance bottleneck on functions like hasCommonDisease() that previously had to look up all contained spells from the ESM store on every call. hasCommonDisease() is called hundreds of times per frame by the AI target update since it's used to calculate target disposition.
The total cost of hasCommonDisease() was 2.7% of the frame loop, now it's negligible.
2015-11-27 01:07:15 +01:00
scrawl
fbee32729a
Cache CellId
...
ESM::Cell::getCellId() was allocating a string on every call. This caused functions dealing with cellIds to be unnecessarily expensive.
For example, World::moveObject spent almost as much time comparing CellIds as it did updating Bullet's AABB after the move. OpGetDistance was by far the most expensive script instruction because it has to compare cellIds.
The total cost of getCellId() relative to the frame loop was about 0.3%.
2015-11-26 23:56:32 +01:00
scrawl
984c455027
Fix Show Owned option affecting tooltips that are not objects ( Fixes #3036 )
2015-11-26 18:23:39 +01:00
scrawl
bcca1beb69
Merge branch 'configwriter' into HEAD
2015-11-26 17:17:26 +01:00
scrawl
d894d54e41
Improve path conversions
2015-11-26 17:15:28 +01:00
Chris Robinson
d4238a6d91
Add config options for the sound buffer cache size
...
The cache size is specified with a min/max range, intended to avoid constant
unloading once the limit is reached. This way, buffers can be unloaded down to
a reasonable mimimum, allowing some more buffers to be subsequently loaded
without causing more unloading.
2015-11-26 02:13:37 -08:00
Chris Robinson
8715add72f
Store sound buffers in a deque that's filled in as needed
...
A deque allows existing Sound_Buffer references to remain valid as long as new
ones are back-inserted. These references can be used instead of indices.
2015-11-26 01:26:33 -08:00
cfcohen
7605912ece
Merge branch 'master' of https://github.com/OpenMW/openmw into config_writer_changes
2015-11-26 00:57:21 -05:00
scrawl
8a3ec14bc6
Revert "Merge remote-tracking branch 'sandstranger/opengles'"
...
This reverts commit cc9cab6fd1
, reversing
changes made to da856eed95
.
2015-11-25 19:22:48 +01:00
Marc Zinnschlag
ef68e2aec4
Merge remote-tracking branch 'origin/master'
2015-11-25 19:18:17 +01:00
cfcohen
67c4b17581
Commit files that I thought wre in the previous commit. :-[ I'm
...
accustomed to the hg behavior of commiting all modified files by
default.
2015-11-25 13:17:03 -05:00
Marc Zinnschlag
cc9cab6fd1
Merge remote-tracking branch 'sandstranger/opengles'
2015-11-25 19:15:53 +01:00
Chris Robinson
8f08ca9cba
Revert "Avoid unsafe sizeof(x)/sizeof(x[0]) constructs for array counting"
...
This reverts commit 0d4fea896c
.
2015-11-25 06:06:27 -08:00
Chris Robinson
04f885d8cc
Rename mReferences to mUses
2015-11-25 04:24:27 -08:00
Chris Robinson
0d4fea896c
Avoid unsafe sizeof(x)/sizeof(x[0]) constructs for array counting
2015-11-25 04:24:27 -08:00
Chris Robinson
a1bdb544db
Avoid an unnecessary string copy
2015-11-25 04:24:27 -08:00
Chris Robinson
aac903484c
Remove a really unnecessary method
2015-11-25 04:24:26 -08:00
Chris Robinson
73448c72f6
Replace Play_NoTrack with playManualSound3D, and rename the latter
2015-11-25 04:24:26 -08:00
Chris Robinson
caae305ddd
Use a sorted list for unused buffers
...
Helps ensure the buffers being unloaded due to cache limits are not likely to
be needed anytime soon.
2015-11-25 04:24:26 -08:00
Chris Robinson
669b7a2295
Batch update changes together, when possible
...
Certain OpenAL implementations, including Rapture3D, Creative's hardware
drivers, and more recent versions of OpenAL Soft, can batch together changes so
that they all occur at once, avoiding potential discontinuities with one sound
being changed before another, or the listeenr being changed before sounds are.
On other implementaitons, this is a no-op and maintains existing behavior.
2015-11-25 04:24:26 -08:00
Chris Robinson
ea70b0baee
Don't store the buffer in the sound struct
2015-11-25 04:24:25 -08:00
Chris Robinson
fd7d58fe7e
Reset the sound handle back to null after unloading
2015-11-25 04:24:25 -08:00
Chris Robinson
4801661b34
Stop all sounds of the given id
2015-11-25 04:24:25 -08:00
Chris Robinson
8a69f676ec
Remove some duplicate code
2015-11-25 04:24:25 -08:00
Chris Robinson
45628316f8
Remove an unnecessary check
2015-11-25 04:24:25 -08:00
Chris Robinson
574c1923fe
Clear unused buffers after unloading them all
2015-11-25 04:24:25 -08:00
Chris Robinson
5ad772c3b3
Fix streaming sound time
2015-11-25 04:24:25 -08:00
Chris Robinson
3ce6aee98b
Return a decoder from the loadVoice function
2015-11-25 04:24:25 -08:00
Chris Robinson
24f8c78fca
Store sound buffer references by index instead of string
2015-11-25 04:24:24 -08:00
Chris Robinson
f7218f5a25
Use proper mutex mechanisms and don't check al errors in the stream thread
2015-11-25 04:24:24 -08:00
Chris Robinson
f9e18cd966
Prepare all Sound_Buffer objects when one is needed
...
This simply sets up the Sound record data to be used by the sound output. The
actual audio buffers, stored in the Sound_Handle, are still loaded on-demand.
2015-11-25 04:24:24 -08:00
Chris Robinson
6c3953766e
Use separate lists for the sound name and its buffer
...
This should make sound lookup a bit more efficient, especially when an integer
ID can be used.
2015-11-25 04:24:24 -08:00
Chris Robinson
fbfcc4050f
Stream voice clips
...
Voices tend to be a bit long, and not individually replayed often. So it's
better to stream them instead of loading theminto a sound buffer. The loudness
data is very small, though, so that can be kept buffered indefinitely.
2015-11-25 04:24:24 -08:00
Chris Robinson
eee6a19e31
Add a method to stream sounds in 3D
2015-11-25 04:24:24 -08:00
Chris Robinson
f1a1dc8408
Pass relevant sound parameters to the OpenAL_SoundStream constructor
2015-11-25 04:24:24 -08:00
Chris Robinson
83721092f2
Refactor the audio streaming code to be a bit saner
2015-11-25 04:24:23 -08:00
Chris Robinson
16f72886e9
Use separate lists for openal sounds and streams
2015-11-25 04:24:23 -08:00
Chris Robinson
0f33f41d8d
Actually unload sounds when running over
2015-11-25 04:24:23 -08:00
Chris Robinson
22a6811425
Limit the sound buffer cache to 15MB
2015-11-25 04:24:23 -08:00
Chris Robinson
0b2747098c
Keep track of unused sound buffers
2015-11-25 04:24:23 -08:00
Chris Robinson
4073495070
Add some missing sound handling
2015-11-25 04:24:23 -08:00
Chris Robinson
e362896817
Combine some duplicate code
2015-11-25 04:24:23 -08:00
Chris Robinson
febc7b510a
Remove an unneeded method
2015-11-25 04:24:23 -08:00
Chris Robinson
3fdc3c4ea9
Use a separate map for say sounds
...
Also restores lip movement
2015-11-25 04:24:22 -08:00
Chris Robinson
9d0018e1bc
Reorder active sound data to make lookup by Ptr better
2015-11-25 04:24:22 -08:00
Chris Robinson
495e138907
Load sound loudness and store it with the Sound_Buffer
...
Still not used for say yet, though
2015-11-25 04:24:22 -08:00
Chris Robinson
f4c22ec49e
Hold a separate list for voice sound buffers
...
This fixes say. Ideally voices would be streamed, but the loudness/"lip" buffer
extraction should be separated from the buffer loading code.
2015-11-25 04:24:22 -08:00
Chris Robinson
4571218827
Load the sound as needed and pass it directly to the play methods
...
This breaks say sounds, loudness handling, and the cache limit. Fixes are
forthcoming.
2015-11-25 04:24:22 -08:00
Chris Robinson
e2beefd8b5
Store info calculated from the ESM::Sound record
2015-11-25 04:24:22 -08:00
scrawl
edfcb45ad7
Fix crash when onPcEquip script removes the equipped item ( Fixes #3016 )
2015-11-24 22:55:17 +01:00
sandstranger
69acacefff
openmw building on Android with Opengl es
2015-11-23 20:28:35 +03:00
Marc Zinnschlag
da856eed95
Merge remote-tracking branch 'origin/master'
2015-11-23 18:17:36 +01:00
scrawl
3fe38e3556
Remove unused setting
2015-11-23 03:26:21 +01:00
scrawl
71cd57a3b5
Optimize World::getTimeStamp
...
World::getTimeStamp was searching through the globals store on every call. Not a big issue, but slow enough to show up in the profiler.
2015-11-22 23:55:21 +01:00
scrawl
62169a7039
Use a single-precision PositionAttitudeTransform in speed critical places
2015-11-22 19:54:26 +01:00
cfcohen
b507d5da5d
One more tooltip fix. This one in the review dialog with Socucius Ergalla.
2015-11-22 00:50:36 -05:00
Marc Zinnschlag
8da04bf76f
Merge remote-tracking branch 'scrawl/master'
2015-11-21 09:15:46 +01:00
scrawl
1b1d9a7a9c
Fixed another tooltip
2015-11-21 02:05:27 +01:00
cfcohen
cf4f3d9ebc
Correct tooltip for Magicka in stats window.
2015-11-20 14:57:42 -05:00