1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-16 18:59:57 +00:00
Commit graph

82 commits

Author SHA1 Message Date
elsid
c2ac1ce046
Use is_directory member function
To reduce the number of syscalls.
2024-02-21 22:03:15 +01:00
elsid
1b1ed55762
Add context to the errors on recursive iteration over directory
To avoid showing users errors like:
recursive_directory_iterator::operator++: Access is denied.

And show something like this:
Failed to recursively iterate over "/home/elsid/.local/share/openmw/test_data"
when incrementing to the next item from
"/home/elsid/.local/share/openmw/test_data/permission_denied": Permission denied
2024-02-18 01:08:19 +01:00
elsid
d147d1d250
Initialize FileSystemArchive index in constructor
It should be initialize for each created archive anyway. There is no good reason
to have additional complexity for lazy initialization. And it helps to catch
problems with specific directory when it's added to the VFS not when all are
added and index is built.
2024-02-17 02:07:50 +01:00
elsid
a6657c18cc
Use normalized path for file archives indices 2024-02-08 11:48:59 +01:00
elsid
062d3e9c00
Add NormalizedView for normalized paths 2024-02-08 11:48:57 +01:00
elsid
1689c59546
Add tests for VFS::Path::Normalized 2024-02-08 11:42:28 +01:00
elsid
70061329a1
Return Path::Normalized from RecursiveDirectoryIterator 2024-01-24 22:19:03 +01:00
elsid
9279138fb0
Accept normalized path by VFS::Manager functions 2024-01-24 21:52:49 +01:00
elsid
d549cfd66b
Check path for being normalized 2024-01-24 21:52:49 +01:00
elsid
35d9b18b4c
Add type for normalized VFS path and use for VFS::Manager file map key
This will reduce the number of path normalizations while more places will use
this type. In some cases it also will reduce number of temporary allocations for
new strings.

For now make conversion from and to std::string_view implicit to allow gradual
migration to this type.
2024-01-18 00:03:06 +01:00
elsid
a2147d70cc
Use forward declaration for some VFS types
This will allow to save on preprocessed code size in the future changes.
2024-01-16 01:32:11 +01:00
elsid
0d8dc5aabc
Use string_view for VFS lookups 2023-12-25 12:21:01 +01:00
elsid
3363616f56
Remove redundant startsWith function 2023-12-25 11:43:02 +01:00
Evil Eye
f5a20d1e9c Change include guard name 2023-06-08 21:10:12 +02:00
Evil Eye
e8ddccaefe Use std::transform 2023-06-08 21:10:12 +02:00
Evil Eye
e791d2b498 Fix unit tests 2023-06-08 21:10:11 +02:00
Evil Eye
eeda48ec50 Drop support for --fs-strict 2023-06-08 21:10:09 +02:00
Elias Howell
bf8fafa79a fixed some typos and spelling errors 2023-05-09 20:07:08 -04:00
Cédric Mocquillon
d30deef4b5 Use the right archive type to load bsa according to their type 2023-03-02 21:07:54 +01:00
Cédric Mocquillon
c1fbe90953 Handle GNRL case of ba2 format 2023-03-02 18:19:58 +01:00
jvoisin
3cbf1dc042 First pass with include-what-you-use 2022-10-09 10:39:43 +00:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Project579
2df8bfed25 Fix build errors after rebase against master due to large amount of changes. 2022-09-11 14:41:20 +02:00
Project579
a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2022-09-11 14:41:20 +02:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
Project579
4bb07282c9 Replace all remaining occurrences of boost::filesystem with std::filesystem. 2022-09-11 02:19:00 +02:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
psi29a
b032a643f9 Merge branch 'vfs_string_view' into 'master'
Use std::string_view in VFS::Manager

See merge request OpenMW/openmw!2148
2022-07-17 15:50:29 +00:00
Petr Mikheev
38ee6d285d Use std::string_view in VFS::Manager 2022-07-17 12:19:19 +02:00
elsid
6c8ed4d19c
Move Files::IStreamPtr alias to a separate header
To avoid transitive include of Windows.h all over the engine.
2022-07-17 11:35:39 +02:00
elsid
9398e97600
Avoid manual memory management for VFS archives 2022-07-16 15:30:14 +02:00
elsid
bef15edf0b
Remove redundant ostream, istream, iostream and sstream includes
* Replace by std::to_string and operator+ where possible.
* Move the code requiring to include <sstream> from .hpp to .cpp files.
2022-07-05 01:41:28 +02:00
AnyOldName3
c3d23b4948 Extra hack to make this build on Ubuntu with old CMake 2022-06-18 22:43:12 +01:00
AnyOldName3
bdcac26d8c Fix regressions from https://gitlab.com/OpenMW/openmw/-/merge_requests/1917 2022-06-16 00:30:11 +01:00
jvoisin
bd5ccaac3c Followup to 21efb74b58 2022-05-27 19:09:34 +02:00
jvoisin
21efb74b58 Remove even most boost:: 2022-05-26 16:13:07 +02:00
jvoisin
6feb92a9bf Remove boost::filesystem from a couple of files 2022-05-24 21:18:21 +00:00
cody glassman
04843fed6d moddable post-processing pipeline 2022-05-15 10:03:58 -07:00
elsid
5eb8c4aebe
Avoid redundant conversion to const char* and use make_shared 2022-04-10 22:33:08 +02:00
Cédric Mocquillon
ff7ad93bac Avoid missusing of CompressedBSAFile with private inheritance 2022-02-27 20:40:35 +01:00
Evil Eye
b834527813 Add missing include 2021-12-14 21:36:11 +01:00
Bo Svensson
db3d938ee9
cleans up BSAFile (#3177)
We currently build a large map of a BSAFile's contents unused by Open MW. We already map archive contents in VFS. With this PR we remove the map from BSAFile and reimplement its only current use in BSATool.
2021-10-14 14:46:44 +02:00
Bo Svensson
7c50f823d8
devirtualises BSAFile (#3161)
Currently, Open MW's basic file access speed is limited by a peculiar layer of virtualisation in BSAFile's interface. This PR removes such virtualisation by properly separating BSAFile from CompressedBSAFile in low level contexts.
2021-10-11 10:09:48 +02:00
Cédric Mocquillon
b676d93e03 Use a pair of iterator to represents a range for directory listing 2021-09-24 14:17:34 +02:00
Cédric Mocquillon
c2df0949e2 Change normalizeFilename signature 2021-09-14 18:09:55 +02:00
Cédric Mocquillon
d4e26746a3 Use recurse subdirectory iterator to iterate over the VFS without exposing internal details 2021-09-14 18:09:54 +02:00
jvoisin
5375b8e71b Minor optimisation in VFS::FileSystemArchive::listResources
When there is no cache, we can fill the `out`
variable as we create it, instead of creating the
cache, and then iterating it to fill `out`.

Thanks to @cemoc for the help!
2021-06-23 12:46:44 +02:00
CedricMocquillon
e378159ea8 Use O(log(n)) search instead of O(n) 2021-05-05 23:10:24 +02:00
CedricMocquillon
d617d66a87 Add file to BSA 2021-04-08 18:08:28 +02:00
Evil Eye
630ec36d1f iterate in reverse order 2020-12-30 10:35:51 +01:00