1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 08:19:56 +00:00
Commit graph

9027 commits

Author SHA1 Message Date
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
scrawl
43de13fa99 Do not allow resting on lava 2015-11-20 19:22:31 +01:00
scrawl
2d302aef99 Implement stayOutside script variable 2015-11-20 05:05:43 +01:00
scrawl
27617468c8 Fix the collision shape not updating when scaling an object via script 2015-11-20 03:29:58 +01:00
scrawl
5f143dee2d Fix lighting incontinuity at nightfall and sunrise 2015-11-20 03:22:35 +01:00
scrawl
61314e1db1 Fix bounding box of bullet debug drawer 2015-11-20 03:04:03 +01:00
scrawl
706b1d4c28 Disable culling of ClipNode 2015-11-20 02:22:37 +01:00
scrawl
cbf344663f animateCollisionShape checks if the shape is really animated 2015-11-20 00:17:07 +01:00
scrawl
894477849a Store animated collision objects in a separate container 2015-11-19 23:33:08 +01:00