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

75 commits

Author SHA1 Message Date
psi29a
3d61d7ec9a Merge branch 'optimize_initial_load' into 'master'
Optimize engine initial loading time

See merge request OpenMW/openmw!867
2021-05-15 18:48:17 +00:00
jvoisin
7deb6a6ffd Use const references when possible in for loops
No need for useless copies.
2021-05-15 19:50:01 +02:00
elsid
1e2aae8095
Use stable sort+unique to collect RefIDs for ESMStore records counting
The idea is to avoid std::map lookup for each CellRef. Instead generate a
sequence of added and removed RefNums into a vector then order them by RefNum
using a stable sort that preserves relative order of elements with the same
RefNum. RefIDs are stored in a different vector to avoid std::string move ctor
calls when swapping elements while sorting. Reversed iteration over added and
removed RefNums for each unique RefNum is an equivalent to what map-based
algorithm produces. The main benefit from sorting a vector is a data locality
that means less cache misses for each access. Reduces ESMStore::countRecords
perf cycles by 25%.
2021-05-15 18:45:22 +02:00
elsid
f2188d2533
Reduce temporary allocations on ESM loading
By moving objects instead of copying when possible.
2021-05-15 18:45:21 +02:00
Andrei Kortunov
f308dde254 Clean up MSVC warnings 2021-04-17 12:14:50 +04:00
Evil Eye
cf5a93d712 Also run NPC validation for modified base records 2021-03-23 21:07:57 +01:00
Evil Eye
5e1960a76a Disallow inserting containers, creatures, and npcs from the save game not present in content files 2021-03-22 22:29:10 +01:00
Andrei Kortunov
8084a336b5 Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
Evil Eye
7065282127 Save and load container records; fixes #5668 2020-10-29 13:55:24 +01:00
Evil Eye
6ad20ec9c7 Mutate base records when adding/removing spells 2020-07-28 08:33:28 +02:00
Evil Eye
040a92c373 implement additem/removeitem for non-unique actors 2020-07-26 11:07:18 +02:00
bzzt
d684f1a78f terrainbased objectpaging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
Evil Eye
4d7947d27c Mutate base records when editing AI settings (#2798) 2020-06-02 21:59:37 +02:00
Bret Curtis
8c2f3ff007 clean up code; purge const_cast 2020-04-19 16:31:54 +02:00
Andrei Kortunov
3970baeb84 Fix possible usage of destroyed variable 2019-11-13 15:46:49 +04:00
Alexei Dobrohotov
dec64a7fba
Fix typos in invalid spell effect warnings, clarify them 2019-10-17 23:45:27 +03:00
Capostrophic
3aa65273c5 Signedness fixes 2019-06-18 14:47:10 +03:00
Capostrophic
d98a90194b Erase effects with invalid indices from spells (bug #5050) 2019-06-02 14:56:39 +03:00
Capostrophic
be125aa996 Add spell effect argument validation (bug #4927) 2019-04-01 16:22:24 +03:00
Capostrophic
27eb64c7f0 Clean up fallback record creation again 2019-01-02 13:49:04 +03:00
Capostrophic
4efe1bc892 Add prison marker record fallback definition (bug #4701) 2018-11-05 19:37:46 +03:00
Andrei Kortunov
5a4d0cec3a Use new logging system for game itself 2018-08-14 23:05:43 +04:00
Andrei Kortunov
49ba00a3ec Add NPC validation to esmstore (bug #2772) 2018-06-14 16:48:16 +04:00
Andrei Kortunov
1dd36329a3 Load default markers definitions (bug #4410) 2018-05-05 17:14:33 +04:00
Roman Proskuryakov
d5dfa89060 Rewrite NAME_T into FIXED_STRING. 2016-05-07 23:27:33 +03:00
scrawl
1905f0bf2d Add support for placing BodyParts in a cell (Bug #3118) 2016-01-02 01:30:06 +01: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
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
Stanislav Bas
c266315a35 Load/read methods in MWWorld::Store return a pair (record ID, deleted flag) 2015-07-12 15:20:22 +03:00
Stanislav Bas
2ed182b144 Update to upstream/master. Resolve merge conflicts in MWWorld::Store 2015-07-12 12:01:18 +03:00
Stanislav Bas
9301bc148e Remove NAME handling from MWWorld::ESMStore 2015-07-10 00:29:38 +03:00
Alexander "Ace" Olofsson
b3b55a5842 Explicitly instantiate MWWorld::Store 2015-07-09 19:22:04 +02:00
dteviot
e197f5318b fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
2015-03-08 13:07:29 +13:00
scrawl
9d3f0b2ed5 Remove some unused code, include cleanup 2015-01-27 23:12:13 +01:00
scrawl
697ab16ec5 Fix for coverity defects 2015-01-27 19:00:26 +01:00
scrawl
c883a73d30 Several warning fixes 2015-01-23 15:34:47 +01:00
scrawl
c3f3f8b3d0 Use only Cell records for saving progress bar (Fixes #2259) 2015-01-11 18:01:06 +01:00
scrawl
d31ae2b345 Fix mIds mapping for dynamic records being lost on save/reload 2015-01-08 16:27:13 +01:00
scrawl
31d28e727f Implement leveled list script functions (Fixes #1546) 2014-12-17 01:24:22 +01:00
scrawl
4047e3c928 Properly handle DialInfo records that were marked as Deleted (Fixes #2035) 2014-10-19 17:46:28 +02:00
Marc Zinnschlag
081588f484 add project file to content file list when running OpenMW from OpenCS 2014-09-13 20:48:24 +02:00
scrawl
b9dadff5a3 Recognize DELE subrecords at the end of the record (Fixes #1414) 2014-06-08 11:22:37 +02:00
scrawl
16ac6e7aac Merge DialInfo objects by subrecord instead of overwriting the object
Fixes #1360
2014-05-31 13:01:11 +02:00
scrawl
cf68f6da96 Fix ESX dependencies not being checked except for the first one 2014-05-27 00:06:34 +02:00
scrawl
3cd835e61a Fix bsa file loading not being case insensitive (Fixes #1178) 2014-05-26 17:34:36 +02:00
scrawl
a87b64d2da Fix some ancient code 2014-05-18 16:34:58 +02:00
scrawl
1677fcf324 Dialogue merging 2014-05-18 15:25:16 +02:00
scrawl
6cc691115b Savegame: store most of CreatureStats 2014-05-12 21:37:36 +02:00
scrawl
041319c43e Fixes #1234: Store dynamic record counter in savegame to prevent name clashes 2014-05-11 00:32:22 +02:00