Commit Graph

11836 Commits (9c7bbd667b784f3ca1fa0067dcf5ae4373ced1d6)

Author SHA1 Message Date
scrawl 671561ea37 Write moved references to the save game file (not resolved on loading yet) 9 years ago
scrawl 2219231230 Missing updateMergedRefs() 9 years ago
scrawl 138957c49a Special case objects with no refnum 9 years ago
scrawl 5e99a3eda6 Rename CellStore Functor to Visitor 9 years ago
scrawl 2301080c63 Load CellStore when an object is moved there 9 years ago
scrawl 811df1e97b Pass the ESM reader list to CellStore constructor 9 years ago
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>
9 years ago
Marc Zinnschlag b37a2ac09c user settings categories 9 years ago
Marc Zinnschlag 36ce8f97d7 basic framework for new user settings system 9 years ago
Chris Robinson 91cd6be11b Use the correct SoundId for NPC "land" sounds 9 years ago
Chris Robinson c75303b652 Add an option to select and enable HRTF 9 years ago
Marc Zinnschlag 03a0b1fbfd Merge remote-tracking branch 'origin/master' 9 years ago
scrawl 53158d29b1 stopSound crash fix 9 years ago
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.
9 years ago
scrawl 67a6a8f5d4 Make projectiles receive lighting 9 years ago
scrawl 6181594251 Disable freezeOnCull for magic projectile particles 9 years ago
scrawl a8938589f6 Magic projectiles rotate during flight 9 years ago
scrawl 3f93af4181 Projectiles interact with the water surface (Fixes #2986) 9 years ago
scrawl 3dcefd17fc Fix CellStore::count() 9 years ago
scrawl 3aa53f3cb4 Object cell movement tracker works. Savegame handling is still missing and some game functionality is still stubbed out. 9 years ago
scrawl 64b4926127 Add reference moving logic - untested 9 years ago
scrawl 7a983340bf Add comment 9 years ago
scrawl fc449233be Restore support for inserting objects into a cell 9 years ago
scrawl 0975f60d59 Stub out CellStore::get<T> accessors in preparation of reference movement between cells 9 years ago
Marc Zinnschlag 49b37ce8bf Merge remote-tracking branch 'scrawl/geteffect' 9 years ago
scrawl 8e9571d155 Double buffer the light StateAttributes and StateSets
Fixes a race condition where the position of a light could jump a frame ahead.
9 years ago
scrawl f22982d251 Merge pull request #835 from sandstranger/opengles1
enable opengl es1
9 years ago
scrawl 5f349b9a6e Support effects with attribute/skill argument in OpGetEffect 9 years ago
scrawl 1ec338f19d Don't attempt to load external keyframes for non-NIF files 9 years ago
scrawl 795f6d77f2 Cache the Animation's Skeleton 9 years ago
Marc Zinnschlag e0c9265148 Merge remote-tracking branch 'origin/master' 9 years ago
scrawl 389b168d5f Restore OpGetWaterLevel to vanilla behaviour 9 years ago
scrawl d0c6b407b4 Fix isUnderwater checks being off by one for exterior cells 9 years ago
scrawl 86881bcf39 In first person mode, attach sound listener to the camera 9 years ago
sandstranger 238a5824be add custom new variable fot Qt 9 years ago
Chris Robinson f19f1c47c8 Fix playing pending voices without a Ptr 9 years ago
Chris Robinson 2face3d0a9 Combine duplicate code 9 years ago
Chris Robinson 1407366e51 Use a premade SoundStream object for the output's streamSound functions 9 years ago
Chris Robinson 2ee3265b66 Use a premade Sound object for the output's playSound functions 9 years ago
Chris Robinson 53718a5ca0 Use a typedef for the sound instance handle 9 years ago
Chris Robinson 3a39a92b93 Keep track of audio tracks 9 years ago
Chris Robinson 2883cdba5c Initialize the Sound object before modifying the pitch variable 9 years ago
Chris Robinson a6db96b2d8 Update sound and stream parameters 9 years ago
Chris Robinson 4bd235284b Rename a couple members to avoid confusion 9 years ago
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.
9 years ago
Chris Robinson 816015d6e6 Avoid inheriting from Sound for sound types 9 years ago
sandstranger b0b3192520 delete bad symbol 9 years ago
sandstranger bd5057aa3c enable opengl es1 9 years ago
scrawl 3d12b2ca9d Add NifFileManager to avoid duplicate parsing of the NIFFile in SceneManager and BulletShapeManager. 9 years ago
scrawl c912310c52 Don't add persuasion results to the journal 9 years ago
scrawl 2327a41826 Fix journal freeze 9 years ago
scrawl ba5433391f Merge pull request #831 from ace13/win-fix
Fix windows builds
9 years ago
Alexander "Ace" Olofsson 24340bff95 Add a space 9 years ago
Alexander "Ace" Olofsson 6823298516 Different way to solve the type deduction issue 9 years ago
Alexander "Ace" Olofsson a69e751089 Revert "Fix windows builds"
This reverts commit b085c09f86.
9 years ago
scrawl f5f3d18b8e Add comment 9 years ago
scrawl 576d5111a5 Prefer Intersector::PROJECTION over Intersector::WINDOW 9 years ago
scrawl 14b143231c Don't crash OpGetTarget when the target disappeared (Fixes #3048) 9 years ago
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.
9 years ago
Marc Zinnschlag 3a81bed001 Merge remote-tracking branch 'origin/master' 9 years ago
Marc Zinnschlag 7cc8fbfb3c Merge remote-tracking branch 'scrawl/dynamic_cast2' 9 years ago
scrawl 0655abcd8b Fix some character preview raycasting issues (Bug #2769) 9 years ago
scrawl 8fb328ef4f Fix updating of character preview size in InventoryWindow::setGuiMode 9 years ago
scrawl d2290a8183 Don't crash when Water_SurfaceFrameCount is 0 9 years ago
scrawl d5a738bd39 Apply 27e669296e (locale-unaware tolower) to more code
In particular, the one in VFS::normalizeFilename was affecting cell loading performance.
9 years ago
scrawl f962ce0bbe Don't link against unnecessary OSG libraries 9 years ago
scrawl cd4a1ffd16 Fast version of dynamic_cast for MWClass 9 years ago
Marc Zinnschlag 20a076bdba Merge remote-tracking branch 'origin/master' 9 years ago
Marc Zinnschlag 6df626ad71 Merge remote-tracking branch 'scrawl/crashcatcher' 9 years ago
scrawl db71634a2d Allow replacing of interactive message boxes (Fixes #3040) 9 years ago
scrawl c9bfe01120 Fix applying of weather changes after serving a jail sentence 9 years ago
Marc Zinnschlag 6facce9d13 Merge remote-tracking branch 'origin/master' 9 years ago
Marc Zinnschlag ff5582e318 Merge remote-tracking branch 'scrawl/ltex' 9 years ago
scrawl a1fa1b2b2e Don't attempt to open an empty texture 9 years ago
scrawl d97dda05c9 Don't attempt to play unset weather sounds 9 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
scrawl 5b8fd79b4b Fix crash when exception is thrown in startNewGame() 9 years ago
scrawl 177a6f4a68 Launcher: ensure to clear previous settings when reloading settings 9 years ago
scrawl ace4cfc0a8 Fix 'duplicate setting' errors when running installation wizard 9 years ago
scrawl 89783e047b Fix typo 9 years ago
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.
9 years ago
Chris Robinson 0f05ccf72a Use a non-recursive mutex and properly end the streaming thrread 9 years ago
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.
9 years ago
Chris Robinson f3c035907c Rename Sound::update to Sound::applyUpdates 9 years ago
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.
9 years ago
Chris Robinson 4a078725d4 Play player voices locally 9 years ago
Chris Robinson 449eca4fb4 Properly mark streams as 2D or 3D 9 years ago
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.
9 years ago
Chris Robinson 5f8a09df97 Play player sounds (except footsteps) local to the listener 9 years ago
Chris Robinson 82f3651f81 Treat the sound offset as the offset in seconds 9 years ago
Chris Robinson 8b7587f9a6 Track whether a sound is 3D 9 years ago
Chris Robinson fc912b135f Avoid unnecessarily friending classes 9 years ago
Marc Zinnschlag 7cc950ed64 Merge remote-tracking branch 'origin/master' 9 years ago
Marc Zinnschlag b3532b6274 Merge remote-tracking branch 'scrawl/spells' 9 years ago
scrawl 44dd62067e Remove some unnecessary per-frame store searches 9 years ago
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.
9 years ago
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%.
9 years ago
scrawl 984c455027 Fix Show Owned option affecting tooltips that are not objects (Fixes #3036) 9 years ago
scrawl 2ffcc2a2b4 Fix incorrect path encoding handling in debug message 9 years ago
scrawl bcca1beb69 Merge branch 'configwriter' into HEAD 9 years ago
scrawl d894d54e41 Improve path conversions 9 years ago
scrawl 84aceedfa2 Add comment 9 years ago
scrawl 325d208b4a Fix incorrect error message 9 years ago
scrawl 3747843c92 Use QString::toInt instead of atoi 9 years ago
cfcohen c26463fd91 Should have coded it the way scrawl said, since it's cleaner. 9 years ago
cfcohen a9c9cc5508 Remove unnecessary copy of mEngineSettings in mInitialSettings. 9 years ago
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.
9 years ago
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.
9 years ago
cfcohen 046538984c Fix duplicate filename in what() message. Use newly create cfgError
utility function consistently throughout code.
9 years ago
cfcohen 7605912ece Merge branch 'master' of https://github.com/OpenMW/openmw into config_writer_changes 9 years ago
cfcohen ad5eaaa705 Update the OpenMW Launcher so that it only writes changed values to
the user settings.cfg file.  Add a helpful header to the top of new
settings.cfg files.  Remove old code involve whitespace management
that didn't work correctly anayway, and doesn't matter since we're not
adding comments to the file.  Remove "automatically generated"
comments.
9 years ago
scrawl 8a3ec14bc6 Revert "Merge remote-tracking branch 'sandstranger/opengles'"
This reverts commit cc9cab6fd1, reversing
changes made to da856eed95.
9 years ago
Marc Zinnschlag ef68e2aec4 Merge remote-tracking branch 'origin/master' 9 years ago
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.
9 years ago
Marc Zinnschlag cc9cab6fd1 Merge remote-tracking branch 'sandstranger/opengles' 9 years ago
cfcohen 18da95e4f8 Make openmw-launcher pass comments through settings.cfg, and reuse the
Settings::Manager code to do most of the work.  Stop loading both the
global settings-default.cfg and the one in the current directory,
while continuing to prefer the latter one.  Cleanup paths slightly and
remove what appears to have been debugging in the launcher settings.
9 years ago
Chris Robinson 8f08ca9cba Revert "Avoid unsafe sizeof(x)/sizeof(x[0]) constructs for array counting"
This reverts commit 0d4fea896c.
9 years ago
Chris Robinson 04f885d8cc Rename mReferences to mUses 9 years ago
Chris Robinson 0d4fea896c Avoid unsafe sizeof(x)/sizeof(x[0]) constructs for array counting 9 years ago
Chris Robinson a1bdb544db Avoid an unnecessary string copy 9 years ago
Chris Robinson aac903484c Remove a really unnecessary method 9 years ago
Chris Robinson 73448c72f6 Replace Play_NoTrack with playManualSound3D, and rename the latter 9 years ago
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.
9 years ago
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.
9 years ago
Chris Robinson ea70b0baee Don't store the buffer in the sound struct 9 years ago
Chris Robinson fd7d58fe7e Reset the sound handle back to null after unloading 9 years ago
Chris Robinson 4801661b34 Stop all sounds of the given id 9 years ago
Chris Robinson 8a69f676ec Remove some duplicate code 9 years ago
Chris Robinson 45628316f8 Remove an unnecessary check 9 years ago
Chris Robinson 574c1923fe Clear unused buffers after unloading them all 9 years ago
Chris Robinson 5ad772c3b3 Fix streaming sound time 9 years ago
Chris Robinson 3ce6aee98b Return a decoder from the loadVoice function 9 years ago
Chris Robinson 24f8c78fca Store sound buffer references by index instead of string 9 years ago
Chris Robinson f7218f5a25 Use proper mutex mechanisms and don't check al errors in the stream thread 9 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
Chris Robinson eee6a19e31 Add a method to stream sounds in 3D 9 years ago
Chris Robinson f1a1dc8408 Pass relevant sound parameters to the OpenAL_SoundStream constructor 9 years ago
Chris Robinson 83721092f2 Refactor the audio streaming code to be a bit saner 9 years ago
Chris Robinson 16f72886e9 Use separate lists for openal sounds and streams 9 years ago
Chris Robinson 0f33f41d8d Actually unload sounds when running over 9 years ago
Chris Robinson 22a6811425 Limit the sound buffer cache to 15MB 9 years ago
Chris Robinson 0b2747098c Keep track of unused sound buffers 9 years ago
Chris Robinson 4073495070 Add some missing sound handling 9 years ago
Chris Robinson e362896817 Combine some duplicate code 9 years ago
Chris Robinson febc7b510a Remove an unneeded method 9 years ago