Commit Graph

72 Commits

Author SHA1 Message Date
elsid eba553821b
Use std::vector for LandCache implementation 2023-08-27 01:32:36 +02:00
elsid bda29819cf
Reduce include dependency for land records 2023-08-19 01:30:17 +02:00
elsid a027cd898b
Use only cell position to detect cell change 2023-08-19 01:30:17 +02:00
elsid 28614730da
Pass land reference to LandObject constructor 2023-08-19 01:30:17 +02:00
elsid e6f35373b5
Remove ESM::LandObject dependency on ESM::Land 2023-08-19 01:30:16 +02:00
elsid ce6ffba986
Move blendmap sampling logic into separate function 2023-08-12 02:45:09 +02:00
elsid 8e7fe44514
Support terrain sample size greater than cell size 2023-08-06 23:47:35 +02:00
elsid 2a49919b53
Move esm3terrain to esmterrain 2023-08-06 19:17:44 +02:00
Bret Curtis cdbab2325f rename esmterrain to esm3terrain 2022-01-23 17:19:30 +01:00
Andrei Kortunov 8084a336b5 Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
elsid 40ad87bc4d
Replace OpenThreads by std types 2020-06-25 22:16:09 +02:00
Andrei Kortunov 1cdd33b434 Implement additional stringops to avoid Boost functions 2020-01-09 19:40:22 +04:00
bzzt f09125fc93 perf regression fix 2019-11-20 13:37:00 +00:00
Nelsson Huotari 0ce971c1bb Revert back to less aggressive component-level changes. 2019-10-22 21:26:55 +03:00
Nelsson Huotari 16138fc896 Transient land shape editing 2019-10-22 21:25:10 +03:00
bzzt 528cda8032 Prevent layers duplication when a terrain chunk crosses plugin borders 2019-06-01 14:52:42 +04:00
Andrei Kortunov 1da012f6ee Optimize blendmap generation 2019-06-01 14:37:29 +04:00
Andrei Kortunov 7c53b99d31 Avoid possible data race during access to the static local variable 2019-05-24 08:03:45 +04:00
Capostrophic 786f3e5fc3 Remove unused and unfinished blendmap packing feature 2019-03-22 22:15:28 +03:00
bzzt b42ad0f610 Inline certain terrain storage functions 2019-03-17 07:27:27 +03:00
bzzt e131e6699c Match vertex colors data type to source 2019-03-17 07:24:22 +03:00
Andrei Kortunov 3032b177a1 Remove redundant includes 2019-02-23 08:02:12 +04:00
Andrei Kortunov e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Andrei Kortunov 70ed8fd1a9 Use constants instead of widely used magic numbers (task #4645) 2018-09-17 19:22:50 +04:00
Andrei Kortunov 1452684d9e Use new logging system for components 2018-08-14 19:42:41 +04:00
Andrei Kortunov 12144de8ed Initialize missing variables 2018-08-01 20:18:37 +04:00
Andrei Kortunov 359e748c28 Initialize some missing fields in constructors 2018-06-25 09:35:42 +04:00
wareya 94f695cffc Fix #4452 and remove dead code 2018-06-12 21:04:27 -04:00
wareya 7344323b9e remove indentation from blank lines 2018-06-09 10:31:51 -04:00
wareya 8f45b0d53a remove unnecessary conditions 2018-06-09 10:11:43 -04:00
wareya 6277f5511c fix #3876 and #3993 2018-06-08 17:52:46 -04:00
tri4ng1e d4d1703bcf
Some PVS-Studio and cppcheck fixes
cppcheck:
[apps/esmtool/record.cpp:697]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1126]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1138]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/niftest/niftest.cpp:36]: (performance) Function parameter 'filename' should be passed by reference.
[apps/niftest/niftest.cpp:41]: (performance) Function parameter 'filename' should be passed by reference.
[apps/opencs/model/prefs/boolsetting.cpp:25]: (warning) Possible leak in public function. The pointer 'mWidget' is not deallocated before it is allocated.
[apps/opencs/model/prefs/shortcuteventhandler.cpp:52]: (warning) Return value of std::remove() ignored. Elements remain in container.
[apps/openmw/mwstate/quicksavemanager.cpp:5]: (performance) Variable 'mSaveName' is assigned in constructor body. Consider performing initialization in initialization list.

PVS-Studio:
apps/opencs/model/filter/parser.cpp  582  warn  V560 A part of conditional expression is always true: allowPredefined.
apps/opencs/view/world/referencecreator.cpp  67  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/world/referencecreator.cpp  74  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !completed.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !error.empty().
apps/opencs/model/tools/pathgridcheck.cpp  32  err  V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. Check lines: 32, 34.
apps/opencs/model/world/refidadapterimp.cpp  1376  err  V547 Expression 'subColIndex < 3' is always true.

apps/openmw/mwgui/widgets.hpp  318  warn  V703 It is odd that the 'mEnableRepeat' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:318, MyGUI_ScrollBar.h:179.
apps/openmw/mwgui/widgets.hpp  319  warn  V703 It is odd that the 'mRepeatTriggerTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:319, MyGUI_ScrollBar.h:180.
apps/openmw/mwgui/widgets.hpp  320  warn  V703 It is odd that the 'mRepeatStepTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:320, MyGUI_ScrollBar.h:181
apps/openmw/mwmechanics/actors.cpp  1425  warn  V547 Expression '!detected' is always true.
apps/openmw/mwmechanics/character.cpp  2155  err  V547 Expression 'mode == 0' is always true.
apps/openmw/mwmechanics/character.cpp  1192  warn  V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
apps/openmw/mwmechanics/character.cpp  521  warn  V560 A part of conditional expression is always true: (idle == mIdleState).
apps/openmw/mwmechanics/pathfinding.cpp  317  err  V547 Expression 'mPath.size() >= 2' is always true.
apps/openmw/mwscript/interpretercontext.cpp  409  warn  V560 A part of conditional expression is always false: rank > 9.
apps/openmw/mwgui/windowbase.cpp  28  warn  V560 A part of conditional expression is always true: !visible.
apps/openmw/mwgui/journalwindow.cpp  561  warn  V547 Expression '!mAllQuests' is always false.
apps/openmw/mwgui/referenceinterface.cpp  18  warn  V571 Recurring check. The '!mPtr.isEmpty()' condition was already verified in line 16.
apps/openmw/mwworld/scene.cpp  463  warn  V547 Expression 'adjustPlayerPos' is always true.
apps/openmw/mwworld/worldimp.cpp  409  err  V766 An item with the same key '"sCompanionShare"' has already been added.
apps/openmw/mwworld/cellstore.cpp  691  warn  V519 The 'state.mWaterLevel' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 689, 691.
apps/openmw/mwworld/weather.cpp  1125  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1123, 1125.
apps/openmw/mwworld/weather.cpp  1137  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1135, 1137.

apps/wizard/unshield/unshieldworker.cpp  475  warn  V728 An excessive check can be simplified. The '(A && B) || (!A && !B)' expression is equivalent to the 'bool(A) == bool(B)' expression.
apps/wizard/installationpage.cpp  163  warn  V735 Possibly an incorrect HTML. The "</p" closing tag was encountered, while the "</span" tag was expected.

components/fontloader/fontloader.cpp  427  err  V547 Expression 'i == 1' is always true.
components/nifosg/nifloader.cpp  282  warn  V519 The 'created' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 278, 282.
components/esm/loadregn.cpp  119  err  V586 The 'clear' function is called twice for deallocation of the same resource. Check lines: 112, 119.
components/esm/cellref.cpp  178  warn  V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 175, 178.
components/esmterrain/storage.cpp  235  warn  V560 A part of conditional expression is always true: colStart == 0.
components/esmterrain/storage.cpp  237  warn  V560 A part of conditional expression is always true: rowStart == 0.
2018-04-18 12:36:10 +00:00
Allofich 3780d94214 Cast LAND_SIZE to integer to avoid linking error 2017-03-28 01:57:31 +09:00
scrawl fd215caa02 Add local LandCache to cut down on store searches 2017-03-14 19:27:57 +01:00
scrawl 0756fc4ae6 Optimize getBlendmaps for the general case that most points are within the given cell 2017-03-14 19:27:55 +01:00
scrawl 81c9853fe9 Fix handling in getBlendmaps when the chunk is >1 ESM::Cell 2017-03-14 19:27:55 +01:00
scrawl b384087e28 Fix handling in fillVertexBuffers when the chunk is >1 ESM::Cell 2017-03-14 19:27:55 +01:00
scrawl 819860081f Remove custom bounding box 2017-03-14 19:27:55 +01:00
scrawl b1d4bb5708 Add CompositeMapRenderer
Temporarily render all terrain using composite maps for testing purposes
2017-03-14 19:27:55 +01:00
scrawl 0fc465da59 Store the min/max height in LandData 2017-03-14 19:27:55 +01:00
scrawl 80a0398f9d Load LandData into the LandObject to avoid threading conflicts when the same data is being loaded by two threads 2017-03-14 19:27:55 +01:00
scrawl 35d53acc65 Factor out terrain chunk loading/caching into a new resource manager 2017-03-14 19:27:55 +01:00
scrawl 9a3a64f0c4 Add resource manager for ESM::Land to allow data to be unloaded when no longer required 2017-03-14 19:27:55 +01:00
scrawl 29556a1802 More consistent wording of errors/warnings
A Warning indicates a potential problem in the content file(s) that the user told OpenMW to load. E.g. this might cause an object to not display at all or as intended, however the rest of the game will run fine.

An Error, however, is more likely to be a bug with the engine itself - it means that basic assumptions have been violated and the engine might not run correctly anymore.

The above mostly applies to errors/warnings during game-play; startup issues are handled differently: when a file is completely invalid/corrupted to the point that the engine can not start, that might cause messages that are worded as Error due to the severity of the issue but are not necessarily the engine's fault.

Hopefully, being a little more consistent here will alleviate confusion among users as to when a log message should be reported and to whom.
2017-03-04 21:48:31 +01:00
Allofich 0f20312012 Fix MSVC warnings 2017-01-28 04:37:47 +09:00
scrawl 157c11398d Add terrain parallax mapping 2016-03-22 21:46:15 +01:00
scrawl 27577ce765 Add ESM::Land::DEFAULT_HEIGHT 2016-02-28 16:49:18 +01:00
scrawl 0db7163363 Add specular mapping for terrain 2016-02-20 19:55:08 +01:00
scrawl 5cf2441b10 ShaderVisitor: support automatic recognition of normal maps based on file pattern
Introduce new settings 'auto use object normal maps', 'auto use terrain normal maps', 'normal map pattern'
2016-02-20 18:00:43 +01:00
scrawl 98848c752a Make getLayerInfo thread safe 2016-02-09 20:26:58 +01:00