cc9cii
15d5cdf3cf
Allow TES4 ESM/ESP to co-exist with TES3 ESM/ESP.
...
This change aims to allow TES4/TE5 content to OpenMW. i.e. a standalone TES4 would be implemented quite differently. That said, the key changes are:
* Use pointers rather than references for ESM readers so that they can be switched to another variant on the fly.
* Content file dependencies to be checked within each group (only 3 groups for now, TES3/TES4/TES5)
2018-10-06 20:38:53 +10:00
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
cc9cii
4cd4cf8479
Resolved conflicts and build fixes.
2018-10-05 21:54:29 +10:00
scrawl
f456174af8
Rename to lowerCaseInPlace
...
(cherry picked from commit 07b064f616
)
# 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
scrawl
b4cdb965dc
Move rng to components
...
(cherry picked from commit 8c810e3620
)
# Conflicts:
# apps/openmw/engine.cpp
# apps/openmw/mwclass/npc.cpp
# components/misc/rng.cpp
# components/sceneutil/lightcontroller.cpp
# libs/openengine/CMakeLists.txt
2018-10-05 18:53:47 +10:00
dteviot
4b0aeb4066
consolidate random number logic
...
Note, I suspect Rng::rollClosedProbability() is not needed. The only difference between it and rollProbability() is that one time in 37k (on Windows), it will give an output of 1.0.
On some versions of Linux, the value of 1.0 will occur about 1 time in 4 billion.
(cherry picked from commit 3f28634d1f
)
# Conflicts:
# apps/openmw/mwclass/creature.cpp
# apps/openmw/mwclass/npc.cpp
# apps/openmw/mwgui/pickpocketitemmodel.cpp
# apps/openmw/mwgui/waitdialog.cpp
# apps/openmw/mwmechanics/combat.cpp
# apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
# components/CMakeLists.txt
# libs/openengine/misc/rng.cpp
2018-10-05 18:45:57 +10: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
abe6904a94
Minor performance gains on loading cell references.
...
- Use integers where possible
- Unfortunately many functions are simply duplicated for now, but over time the deprecated ones will be removed
2015-12-19 17:54:45 +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
19af94b73e
Reduce copying further by adding move constructors and move assignment operators to CellRef structs.
2015-12-06 15:20:45 +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 35fa1f5865
)
2015-12-05 18:14:55 +11:00
scrawl
a1939ae05f
StringUtils: use the locale-unaware tolower function
...
There is no change in behaviour since we were using the C locale.
The locale-aware tolower is much slower than the locale-unaware one. At least on Linux/GCC it calls dynamic_cast's, and is overall slower by an order of magnitude.
(cherry picked from commit 27e669296e
)
2015-12-05 18:11:21 +11:00
scrawl
0eca29eb62
Ignore Creature INDX subrecords
...
Found in some .ess files, not sure what they mean.
(cherry picked from commit 0bdfd1b0d7
)
2015-12-05 17:42:58 +11:00
cc9cii
1334091613
Resolve merge issues.
2015-12-05 17:28:32 +11:00
scrawl
c221be76dc
Tests: add dialogue_merging_test (requires some data files)
...
(cherry picked from commit 38c155c579
)
2015-12-05 11:26:24 +11:00
scrawl
41ee50c2b7
Move common subrecord definitions (NAME, DELE) to defs.hpp
...
(cherry picked from commit fc8e40889d
)
2015-12-05 11:25:14 +11:00
Stanislav Bas
d789d9369c
Make saving of deleted ESM records more consistent
...
(cherry picked from commit f9b0b7ede5
)
2015-12-05 11:24:21 +11:00
Stanislav Bas
3821bffbfa
Fix missing break in switch statement
...
(cherry picked from commit 9a8ca81907
)
2015-12-05 11:24:09 +11:00
Stanislav Bas
2abdeef2e0
Remove unused includes
...
(cherry picked from commit daaff1284e
)
Conflicts:
apps/openmw/mwworld/store.cpp
components/esm/util.hpp
2015-12-05 11:23:57 +11:00
Stanislav Bas
82363bf318
Make deleted flag a parameter of load/save methods (instead of a record member) in ESM records
...
(cherry picked from commit 4a16eba716
)
Conflicts:
components/esm/loadland.cpp
components/esm/loadland.hpp
2015-12-05 11:20:31 +11:00
Stanislav Bas
7013ba751c
Fix build errors & warnings
...
(cherry picked from commit 1e8182220a
)
2015-12-05 11:19:22 +11:00
Stanislav Bas
d12f784e7e
Remove <cstdint> include file from loaddial.cpp
...
(cherry picked from commit f5745749a6
)
2015-12-05 11:19:11 +11:00
Stanislav Bas
696f7a942b
Some refactoring. Remove unused code
...
(cherry picked from commit 5fd48efd28
)
Conflicts:
apps/openmw/mwworld/store.cpp
2015-12-05 09:46:20 +11:00
Stanislav Bas
b5c958c62a
More ESM records have DELE handling.
...
Changed records: Race, Land, Pathgrid, StartScript, DebugProfile, Filter
(cherry picked from commit e65ff723ce
)
Conflicts:
components/esm/loadland.cpp
components/esm/loadland.hpp
2015-12-05 09:17:40 +11:00
Stanislav Bas
8b7b3d2a4e
Refine DELE handling in ESM records. Add position-independent DELE search
...
(cherry picked from commit ad353e6dd0
)
2015-12-05 07:20:36 +11:00
Stanislav Bas
3686c1e32d
Move DELE handling to CellRef record
...
(cherry picked from commit e8a9567be3
)
2015-12-05 07:20:09 +11:00
Stanislav Bas
82e1b0563c
Add NAME handling to DebugProfile and Filter records
...
(cherry picked from commit b55a4999ca
)
2015-12-05 07:19:32 +11:00
Stanislav Bas
72152d84ed
Move ID loading into a separate method for Dialogue and DialInfo records
...
(cherry picked from commit c8c79dc1ef
)
Conflicts:
apps/openmw/mwworld/store.cpp
2015-12-05 07:19:07 +11:00
Stanislav Bas
d518d70212
Remove NAME and DELE handling from IdCollection
...
(cherry picked from commit 74a055f3cc
)
2015-12-05 07:18:39 +11:00
Stanislav Bas
377d606fc3
Load/read methods in MWWorld::Store return a pair (record ID, deleted flag)
...
(cherry picked from commit c266315a35
)
Conflicts:
apps/openmw/mwworld/store.cpp
apps/openmw/mwworld/store.hpp
2015-12-05 07:17:56 +11:00
Stanislav Bas
2448aa05cb
Add removing of deleted Infos to Dialogue::clearDeletedInfos()
...
(cherry picked from commit adec0cb61d
)
2015-12-05 07:09:23 +11:00
Stanislav Bas
25a8cda9ac
Some fixes for ESM Dialogues and Infos
...
(cherry picked from commit e0983c815c
)
2015-12-05 07:09:05 +11:00
Stanislav Bas
80074f90bf
Set Deleted flag to false when initializing ESM records
...
(cherry picked from commit 7ecb54a776
)
2015-12-05 07:08:50 +11:00
Stanislav Bas
e0d5208d26
Remove explicit record ID in load/read methods of MWWorld::Store
...
(cherry picked from commit 89e44c8f1f
)
2015-12-05 07:07:14 +11:00
Stanislav Bas
c4fd4be3ea
Add NAME handling to GameSetting record
...
(cherry picked from commit b2f3ccb080
)
2015-12-05 07:05:41 +11:00
Stanislav Bas
711d787939
Add NAME and DELE handling to Global record
...
(cherry picked from commit 09a3358017
)
2015-12-05 07:05:28 +11:00
Stanislav Bas
1aa1336dcf
Remove redundant code
...
(cherry picked from commit 30b42bf4c0
)
2015-12-05 07:00:07 +11:00
Stanislav Bas
4f1601fe0d
Add NAME handling to Race record
...
(cherry picked from commit 8c3654af11
)
2015-12-05 06:59:53 +11:00
Stanislav Bas
7dc0c9138f
Add NAME and DELE handling to Cell record
...
(cherry picked from commit b667338a8f
)
2015-12-05 06:59:39 +11:00
Stanislav Bas
8c77cafc35
Add DELE handling to Info record
...
(cherry picked from commit 847614c26f
)
2015-12-05 06:59:24 +11:00
Stanislav Bas
d89de1ba30
Add NAME and DELE handling to Dialogue record
...
(cherry picked from commit 0b537186e5
)
2015-12-05 06:59:12 +11:00
Stanislav Bas
93736e9a81
Change DELE sub-record value to 0 (4 bytes)
...
(cherry picked from commit 19ac4e942a
)
2015-12-05 06:59:01 +11:00
Stanislav Bas
1b21d1b5f7
Add NAME and DELE handling to Script record
...
(cherry picked from commit d2c15647a3
)
2015-12-05 06:58:47 +11:00
Stanislav Bas
44c36a00f8
Add NAME and DELE handling to ESM records.
...
Changed records are those where DELE is inserted at the beginning of a
record (before NAME).
The record has all required sub-records in this case.
(cherry picked from commit 9ac20a3355
)
2015-12-05 06:58:34 +11:00
Stanislav Bas
e9a8eac6af
Add NAME and DELE handling to ESM records.
...
Changed records are those where DELE is located after NAME sub-record.
And DELE is the last sub-record.
(cherry picked from commit 926c825d0c
)
Conflicts:
components/esm/loadstat.cpp
components/esm/loadstat.hpp
components/esm/util.hpp
2015-12-05 06:58:16 +11:00
Marc Zinnschlag
70cb6f0238
fixed an interference with script warning mode and error downgrading ( Fixes #2990 )
...
(cherry picked from commit b61b732207
)
2015-12-05 06:40:10 +11:00
scrawl
368dd9bd8d
Compiler: remove unused mNameStartingWithDigit
...
(cherry picked from commit f7d0d06134
)
2015-12-05 06:34:32 +11:00
Marc Zinnschlag
aa31704d5d
deal with script execution from within a script ( Fixes #2964 )
...
(cherry picked from commit 8eb6d337d5
)
2015-11-01 22:48:38 +11:00
Marc Zinnschlag
4677560859
adjusted a workaround for names starting with digits that interfered with some numerical expressions written without spaces
...
(cherry picked from commit 435e52306a
)
2015-11-01 21:37:30 +11:00
Marc Zinnschlag
c5235ea794
removed a redundant else and made unary + work also in the console
...
(cherry picked from commit ae54f34f25
)
2015-11-01 21:37:14 +11:00