1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 06:35:30 +00:00

132 Commits

Author SHA1 Message Date
elsid
f6fce5ee15
Cleanup includes 2023-07-08 11:28:56 +02:00
elsid
0601d7213e
Remove ESM::RefId::sEmpty
This variable is only required to return empty RefId as const reference. There
is no point in doing so for a type cheap to copy.
2023-04-26 21:15:16 +02:00
Petr Mikheev
f1beaa7b8c Put ESMStore to Environment 2023-04-20 21:45:49 +02:00
Petr Mikheev
61d207bd78 Allow Lua scripts to extend or override standard activation mechanics 2023-04-16 23:50:27 +02:00
florent.teppe
dc21df97c8 Fixed issue with getSummonedCreature( that returned a reference to a non const static value
Fix compile, and apply review comment

Fixed greater vs more typo.

getCellname is back to a string view.

Because in most cases was used as a strong not a refId.
and there was a fundamental issue with region names used as a cellname
2022-12-27 19:16:22 +01:00
florent.teppe
2c30575b3b CellName is now a RefId, makes more sense that way. 2022-12-27 19:16:21 +01:00
florent.teppe
874ff88288 In the interpretter, the id is no longer passed by vallue, but as a const reference instead.
In getMembersLocal(, a reference to a reference wrapper is used, because the id can change, bu all we need to do is change a pointer.No need to change the value
2022-12-27 19:15:56 +01:00
fteppe
125b21de20 Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type
The strong type is actually just a string underneath, but this will help in the future to have a distinction so it's easier to search and replace when we use an integer ID

Slowly going through all the changes to make, still hundreds of errors

a lot of functions/structures use std::string or stringview to designate an ID. So it takes time

Continues slowly replacing ids. There are technically more and more compilation errors

I have good hope that there is a point where the amount of errors will dramatically go down as all the main functions use the ESM::RefId type

Continue moving forward, changes to the stores

slowly moving along

Starting to see the fruit of those changes.

still many many error, but more and more Irun into a situation where a function is sandwiched between two functions that use the RefId type.

More replacements. Things are starting to get easier

I can see more and more often the issue is that the function is awaiting a RefId, but is given a string
there is less need to go down functions and to fix a long list of them.

Still moving forward, and for the first time error count is going down!

Good pace, not sure about topics though, mId and mName are actually the same thing and are used interchangeably

Cells are back to using string for the name, haven't fixed everything yet. Many other changes

Under the bar of 400 compilation errors.

more good progress <100 compile errors!

More progress

Game settings store can use string for find, it was a bit absurd how every use of it required to create refId from string

some more progress on other fronts

Mostly game settings clean

one error opened a lot of other errors. Down to 18, but more will prbably appear

only link errors left??

Fixed link errors

OpenMW compiles, and launches, with some issues, but still!
2022-12-27 19:15:54 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
florent.teppe
0dd529ab1d With the records include removed from store.hpp, need to include the relevant files accross the codebase.Lots of touched files, but very little done 2022-09-06 13:26:13 +02:00
Evil Eye
0df45a90b3 Use string_view in the remaining Class methods and push string_views closer to the MyGUI boundary 2022-08-23 22:14:27 +02:00
Evil Eye
51938f9ef7 Use string_view in Interpreter::Context 2022-08-12 19:42:35 +02:00
Evil Eye
4eb6c48285 Avoid copying in InputManager 2022-08-12 18:42:12 +02:00
Evil Eye
de51525c76 Allow string_view lookups in MWWorld::Store and get some use out of that 2022-08-09 20:43:14 +02:00
Evil Eye
c6ca0e78c9 Make getStringLiteral return a string_view 2022-05-21 01:21:55 +02:00
elsid
ec3674b40a
Use unique_ptr instead of shared_ptr
for MWWorld::Action, ProjectileManager and ESSImport::Converter.

shared_ptr has additional cost of reference counter and requires additional
allocation when constructed as shared_ptr<T>(new T).
2022-04-08 16:12:36 +02:00
Petr Mikheev
47c37e5849 Lua command object:activateBy(actor) and handler onActivate 2022-02-01 23:42:56 +00:00
jvoisin
1123dc46ee Add a ton of const refs 2021-06-23 23:13:59 +02:00
Evil Eye
690e5ef757 Don't resolve a script's target just to get the ID 2021-06-19 19:26:57 +02:00
Evil Eye
67c8d73fe0 Allow scripts to fail per target 2021-06-19 19:26:55 +02:00
jvoisin
998cc97a4f And done! 2021-04-30 20:49:22 +02:00
Andrei Kortunov
9f349e8d91 Use more C++11 in the scripting system code 2020-07-30 20:57:25 +04:00
Evil Eye
3875b837bc make MenuMode, Random, GetSecondsPassed regular functions 2020-05-17 22:34:54 +02:00
Evil Eye
f0e2ee45fa reuse ImplicitRef and ExplicitRef for enable, disable, getdisabled, startscript; move scriptrunning and stopscript 2020-05-13 21:17:08 +02:00
unknown
3b4782959e Allow targeting non-unique actors with StartScript (bug #2311) 2020-05-10 14:57:06 +02:00
Andrei Kortunov
3032b177a1 Remove redundant includes 2019-02-23 08:02:12 +04:00
Andrei Kortunov
2961f0d810 Allow to use the %Name for creatures (bug #4644) 2018-09-16 21:53:28 +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
scrawl
1522bda60b
Fix crash in getDistance when invoked before the game starts 2018-01-11 01:48:05 +00:00
Bret Curtis
d785344fad purge all instances of <boost/shared_ptr.hpp>, clean up unused headers 2017-06-09 19:08:53 +02:00
Allofich
ff3e307059 Pass parameters by const reference 2017-04-20 23:47:03 +09:00
MiroslavR
d97e9cfe7e Fix InterpreterContext::updatePtr updating mLocals to the implicit ref's locals when interpreting a targeted global script (Fixes #3738)
The interpreter context of a targeted global script would point to the target's locals instead of the global script instance's locals when the target changed cell during script execution. Credit to scrawl for the solution.
2017-01-29 13:29:53 +01:00
scrawl
45fb4f04b1 Update reference of the interpreter context when an Activate results in a take action (Fixes #3727) 2017-01-18 21:57:50 +01:00
scrawl
70c5f64caa Fix mLocals not being updated in InterpreterContext::updatePtr 2017-01-18 21:55:58 +01:00
scrawl
f99cd15f00 Vanilla-compatible activate / onActivate (Fixes #1629)
See https://forum.openmw.org/viewtopic.php?f=6&t=3074&p=34618#p34635
2016-02-26 13:08:35 +01:00
scrawl
04f7a8f8eb Remove redundant getId function 2015-12-18 16:58:38 +01:00
Emmanuel Anne
af7b5e636e improves InterpreterContext::updatePtr
This checks the update is really on the right pointer. It fixes the boat
disappearing in "fishing academy", and it allows scripts linked to objects
not to loose their default reference when using the object-> notation on
another object.
2015-11-12 17:53:17 +01:00
scrawl
67bd6cd708 Remove empty line at the beginning of files
git ls-files -z | xargs -0 sed -i '1{/^$/d}'
2015-08-18 23:06:12 +02:00
Stanislav Bas
196be7283d Reset an activated reference after activation's exectution (Fix #1738) 2015-05-19 21:39:17 +03: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
2b7287cbd2 Merge branch 'master' of https://github.com/OpenMW/openmw into joystick
Conflicts:
	CMakeLists.txt
2015-02-27 22:37:22 +01:00
scrawl
97cc2522c0 Merge remote-tracking branch 'upstream/master'
Conflicts:
	apps/openmw/mwgui/settingswindow.cpp
	extern/oics/ICSInputControlSystem_joystick.cpp
	files/mygui/openmw_settings_window.layout
2015-02-27 22:21:02 +01:00
Digmaster
1e4a845b6f Minor code cleanup 2015-02-27 22:19:08 +01:00
scrawl
431f540791 ESSImport: fix NPC factions 2015-01-27 23:12:21 +01:00
scrawl
579f5d232f Move interactive messageBox to separate function 2015-01-10 23:23:48 +01:00
scrawl
2601b26217 Merge branch 'master' of https://github.com/OpenMW/openmw 2014-12-11 22:44:58 +01:00
scrawl
d955017079 Don't report script operation status via messageBox (Bug #1942) 2014-12-11 20:51:02 +01:00
scrawl
7e8ca3fff1 Fix object movement between cells producing a stale Ptr within the script execution (Bug #1942) 2014-12-11 19:29:06 +01:00
Digmaster
c37881ead1 Joystick Support 2014-12-08 21:57:32 -06:00