1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-29 03:45:32 +00:00
Commit graph

2312 commits

Author SHA1 Message Date
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