scrawl
14b143231c
Don't crash OpGetTarget when the target disappeared ( Fixes #3048 )
2015-11-30 15:26:43 +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
177a6f4a68
Launcher: ensure to clear previous settings when reloading settings
2015-11-27 20:52:29 +01:00
scrawl
ace4cfc0a8
Fix 'duplicate setting' errors when running installation wizard
2015-11-27 20:32:45 +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
2ffcc2a2b4
Fix incorrect path encoding handling in debug message
2015-11-26 17:34:22 +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
scrawl
84aceedfa2
Add comment
2015-11-26 17:15:12 +01:00
scrawl
325d208b4a
Fix incorrect error message
2015-11-26 17:13:13 +01:00
scrawl
3747843c92
Use QString::toInt instead of atoi
2015-11-26 17:07:20 +01:00
cfcohen
c26463fd91
Should have coded it the way scrawl said, since it's cleaner.
2015-11-26 10:52:20 -05:00