1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-26 18:35:20 +00:00

2309 Commits

Author SHA1 Message Date
cc9cii
3982573035 BSA enhancements.
* Implement hash based lookup for TES3 BSA files.
* Added TES4/TES5 BSA support.
* Implemented a hack (non-portable code) in an attempt to reduce startup time under Windows because  Boost::filesystem seems to take forever on GetFileAttributeW.  This implementation uses FindFirstFile/FindNextFile/FindClose instead.
2018-10-06 13:35:51 +10:00
scrawl
f456174af8 Rename to lowerCaseInPlace
(cherry picked from commit 07b064f61682096aef2f5f7838cd064847f5d24e)

# Conflicts:
#	apps/opencs/model/world/commanddispatcher.cpp
#	apps/opencs/model/world/regionmap.cpp
#	apps/opencs/model/world/scriptcontext.cpp
#	apps/openmw/mwrender/animation.cpp
#	apps/openmw/mwscript/statsextensions.cpp
#	apps/openmw/mwworld/store.cpp
#	components/misc/stringops.hpp
2018-10-05 19:16:46 +10:00
cc9cii
c2ea682f0e Set editor limits on hard-coded string lengths (Bug #3066)
- See https://forum.openmw.org/viewtopic.php?f=2&t=3233 and https://bugs.openmw.org/issues/3066
2015-12-20 15:02:18 +11:00
cc9cii
60d5ea7ab6 Fix bug where new addons could not be created since commit ff072441fde05d189cb06cb44cc9c360690c2f09. 2015-12-19 20:57:29 +11:00
cc9cii
90b76801f6 Reduce the call to tolower() for each character when the string is already in lower case.
- only a minor performance gain according to the MSVC profiler
2015-12-19 18:50:07 +11:00
cc9cii
003b0d48be Move resource names listing code out of CSMWorld::Resources ctor in order to avoid multiple scan of the same resources.
- The resources are still scanned twice, once when the archive/directory is added and another time when the names are listed.
2015-12-19 17:39:02 +11:00
cc9cii
06f9922822 Performance improvements for loading Info records.
- The order of info records with the same topic are maintained in Collection::mRecords
- The index lookup data structure are not ordered.  The topic string is hashed.  The infos for the topic are simply placed in a vector.
- The index values for appending or inserting a record takes prev/next values (if exist)
- FIXME: prev/next values are not adjusted for adding or removing records
- FIXME: undo after reordering does not reset the modified flag
2015-12-19 17:30:55 +11:00
cc9cii
edf4e6ff95 Fix crash when repeatedly performing delete/undo due to empty moved record.
- introduced in commit 23e7e3c165bb2631f9d8eb298f86da862e91cefa
2015-12-19 17:22:09 +11:00
cc9cii
76e9a03596 More efficient implementation of an earlier fix so that id is searched only once
- see commit 306bfcbdf21a0292775b644e57a0c1f8606d7226
2015-12-18 19:41:19 +11:00
cc9cii
477e0ee912 Convert std::to_string() calls to snprintf() for cell references.
- Profiling indicates snprintf() is more efficient when using MSVC (not tested with linux)
2015-12-18 19:39:40 +11:00
cc9cii
f6d6138f46 Minor formatting change. 2015-12-11 22:39:03 +11:00
cc9cii
de5ce7059e Use load message system for moved ref target cell error logging. 2015-12-11 22:20:21 +11:00
cc9cii
47b5fa9dae Convert some of ostringstream << operations to std::to_sting() calls.
- At least with MSVC the latter is more efficient.
- There are many more, but leave them until they show up during profiling (so far only loading was profiled, and mainly cell references)
2015-12-11 22:18:17 +11:00
cc9cii
86945d1912 Convert the CellRef record index lookup maps to use integer keys rather than strings.
- Morrowind load over 300,000 references, so even small inefficiencies add up to longer loading times.
- std::map is used, but should try others, std::unordered_map or even std::vector
2015-12-11 21:00:13 +11:00
cc9cii
0de223c637 Fix bug (#3067) where content file number was being ignored while searching for already loaded cell references.
- Introduced by commits 49884f54f7f00e1d4413b77eae3d6091043aa016 and 896ab44d1e919852aae03be9ecb71378f031b6f5.
- Also see https://github.com/OpenMW/openmw/pull/557
2015-12-11 07:18:54 +11:00
cc9cii
306bfcbdf2 Fix exception when deleting a record while dialogue subview for that record is open. 2015-12-08 00:27:20 +11:00
cc9cii
68e16b6cee Convert RefNum index map to use find(). 2015-12-06 21:19:06 +11:00
cc9cii
a967418a5a Fix Preview and Unpaged World subviews not rendering. Not sure if this is related to a later version of Ogre being used. 2015-12-06 19:50:26 +11:00
cc9cii
ff072441fd Change the loader's top progress bar to show total number of records processed rather than the number of files. 2015-12-06 19:48:56 +11:00
cc9cii
19af94b73e Reduce copying further by adding move constructors and move assignment operators to CellRef structs. 2015-12-06 15:20:45 +11:00
cc9cii
23e7e3c165 Use std::unique_ptr to store records in collections, RefidCollection and RefIdData.
- std::move support required (C++11)
- MSVC 2013 or later should be fine
2015-12-06 15:14:05 +11:00
cc9cii
257126ed69 Call push_back() if inserting to the end of the vector. It seems MSVC may be generating different code compared to insert(). 2015-12-05 20:50:47 +11:00
cc9cii
77394fce99 Fix table being sorted twice (at least it appeared that way according to the sample profiler)
- Quoting Qt-4.8: "Note: . Setting the property to true with setSortingEnabled() immediately triggers a call to sortByColumn() with the current sort section and order."
2015-12-05 20:38:09 +11:00
cc9cii
f029682057 Merge branch 'cc9cii' into minor-enhancements
Conflicts:
	apps/opencs/model/doc/savingstages.cpp
	apps/opencs/model/world/refidcollection.cpp
2015-12-05 19:55:32 +11:00
scrawl
3c02703876 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.

(cherry picked from commit 35fa1f5865bcb8370505f0a2b641c8363024c8a7)
2015-12-05 18:14:55 +11:00
Marc Zinnschlag
ec00bd2c98 make initial size of script error panel configurable (Fixes #2996)
(cherry picked from commit 99500f40212c7b37a536c2692d5b066c26c79bbf)
2015-12-05 17:45:58 +11:00
Marc Zinnschlag
8c4d414635 remember script error panel height per scriptsubview
(cherry picked from commit f5c61ee616bfaed911a574c6d43aa6842c224773)
2015-12-05 17:45:45 +11:00
Marc Zinnschlag
8da783d877 do not adjust error panel height if panal was already open
(cherry picked from commit 26640d17eb053176b45482e801236415a42ddf1f)
2015-12-05 17:45:32 +11:00
Marc Zinnschlag
2c5f0bf6c5 hide script error list when there are no errors (Fixes #2867)
(cherry picked from commit 1093a53cf9f2a85374e145d96bb21bfb46eb13ad)
2015-12-05 17:45:16 +11:00
Marc Zinnschlag
0366a05649 Removed validator for filenames in OpenMW-CS (Fixes #2918)
(cherry picked from commit b74b274ac0e88ad7c833b908bb301dee3986264f)
2015-12-05 17:44:59 +11:00
Marc Zinnschlag
30b28bfd07 adjusted startup warning message for recent improvements regarding loading/saving
(cherry picked from commit e0e9e7f8c2e2e666f125c2c3a8b1c098ec4ea43a)
2015-12-05 17:44:40 +11:00
scrawl
ebf9ffd1da Fix double writing of Dialogue NAME in OpenCS
(cherry picked from commit af4923577b4f97ef4f5c6e89c58bf4badf3228ec)
2015-12-05 17:33:13 +11:00
cc9cii
1334091613 Resolve merge issues. 2015-12-05 17:28:32 +11:00
Stanislav Bas
2abdeef2e0 Remove unused includes
(cherry picked from commit daaff1284e26d13358b130d7b44721ced210066d)

Conflicts:
	apps/openmw/mwworld/store.cpp
	components/esm/util.hpp
2015-12-05 11:23:57 +11:00
Stanislav Bas
f4587e48f3 Load methods (for ESM records) accept a deleted flag in OpenCS
(cherry picked from commit 13bb6be2383c808084eabed0cb1bfb3b9749e55a)

Conflicts:
	apps/opencs/model/doc/savingstages.cpp
	apps/opencs/model/world/land.cpp
	apps/opencs/model/world/land.hpp
	apps/opencs/model/world/landtexture.cpp
2015-12-05 11:22:51 +11:00
Stanislav Bas
7013ba751c Fix build errors & warnings
(cherry picked from commit 1e8182220ae7c14de13ab634c82f2b14444c0e69)
2015-12-05 11:19:22 +11:00
Stanislav Bas
0277a4e8c4 Implement saving of deleted records
(cherry picked from commit 8e6a7be6f543a112c6aa3e814f572a9d2839ab15)

Conflicts:
	apps/opencs/model/doc/savingstages.cpp
2015-12-05 11:18:15 +11:00
Stanislav Bas
a120bb2b54 Delete infos of deleted dialogue when loading a content file
(cherry picked from commit e04e32bcffa3c95f7c2a007d5fcf09641fff0b03)
2015-12-05 09:46:53 +11:00
Stanislav Bas
9a803739ff Add a separate method to check whether a record is deleted or not for IdCollection
(cherry picked from commit a4d3e59e5c7380ffb27b4d17d4574009e2b45379)
2015-12-05 09:46:40 +11:00
Stanislav Bas
4e199697cc Handle deleted records in RefCollection
(cherry picked from commit 3ba73f5fd9feb9727b56f32767c848e520d9a94c)
2015-12-05 07:20:22 +11:00
Stanislav Bas
9503104129 Return a correct index for a loaded record that was deleted
(cherry picked from commit a1389b87bacd08f54c4c146c7a0b6d1ed51edc54)
2015-12-05 07:19:55 +11:00
Stanislav Bas
0979d88b0c Rework RefIdData code. Update the index map when a new record is loaded
(cherry picked from commit 5e623a2a1d06d5679f214cad95123a1d3bd88b34)
2015-12-05 07:19:43 +11:00
Stanislav Bas
bd695feded Remove INAM handling from InfoCollection
(cherry picked from commit 71e5fc7f0458f77e94879399a39e36393ed19409)
2015-12-05 07:19:18 +11:00
Stanislav Bas
d518d70212 Remove NAME and DELE handling from IdCollection
(cherry picked from commit 74a055f3ccbe25e50d2947d6fe639a84e3138ec7)
2015-12-05 07:18:39 +11:00
Stanislav Bas
639e6e1c56 Remove DELE and NAME handling from RefIdCollection and RefIdData
(cherry picked from commit 42f9136141657cbe3fd0801c579e37dd1ff47a30)
2015-12-05 07:18:27 +11:00
cc9cii
19eed6f4c4 Fix warning C4458 (declaration of 'data' hides class member) 2015-11-22 19:23:11 +11:00
cc9cii
4290751010 Fix warning C4457 (declaration hides function parameter) 2015-11-22 19:17:10 +11:00
cc9cii
d70064efe4 Fix warning C4456 (declaration hides previous local declaration) 2015-11-22 19:15:06 +11:00
cc9cii
cc984497d7 Fix warning C4838 (conversion from 'double' to 'const float' requires a narrowing conversion) 2015-11-22 18:49:58 +11:00
cc9cii
f68e423c33 Add missing Ogre headers. 2015-11-22 18:43:44 +11:00