florent.teppe
0018bcf7de
Should make cellvariant safer to use.
...
Hopefully clang tidy agrees.
2023-01-26 22:37:32 +01:00
florent.teppe
562e129bd0
encapsulations of esm3 cell and esm4 cells.
2023-01-26 22:37:31 +01:00
florent.teppe
08b68fcd48
Cannot load a cell yet, but getting more necessary parts in
2023-01-26 22:36:11 +01:00
florent.teppe
cddf6f29d6
Nothing can be loaded yet. Just foundations.
2023-01-26 22:36:11 +01:00
Evil Eye
7ca25e6467
Fix more case issues with cells
2023-01-25 20:59:10 +01:00
fteppe
889de35b99
fix coc search extbyname
2023-01-23 22:49:01 +01:00
Petr Mikheev
c294898246
Lua commands to create/move/remove objects; consistent handling of disabled objects ( #6726 , #6893 )
2023-01-22 00:08:21 +01:00
Petr Mikheev
e7120f189b
Unset RefNums after copying containers (otherwise copies will have the same RefNums, but they should be unique)
2023-01-21 23:43:00 +01:00
Petr Mikheev
5983f22290
Remember actor in the actor's InventoryStore instead passing the actor in every call
2023-01-21 23:43:00 +01:00
florent.teppe
a4137e941c
std::string_view can be used in map and unordered map
...
This avoids some unecessary dynamic allocations.
Also applies some review advice.
2023-01-21 19:19:26 +01:00
florent.teppe
63e44eddc9
Navigator doesn't use RefId anymore
2023-01-21 18:39:57 +01:00
florent.teppe
3780033837
Reverts Cell name to a string
2023-01-21 18:39:42 +01:00
psi29a
3fea82c06c
Merge branch 'remove_ptr_conversion' into 'master'
...
Remove implicit conversion MWWorld::Ptr -> bool
See merge request OpenMW/openmw!2626
2023-01-18 14:32:58 +00:00
elsid
cf1d8544e3
Check agent bounds on adding agent to navigator
...
Do not add agent bounds which are not supported by recastnavigation with given
settings and log such events.
To avoid reaching navmesh tile generation to find out it can't be generated for
such agent bounds.
2023-01-18 12:00:48 +01:00
Petr Mikheev
e9420b2b68
Remove implicit conversion MWWorld::Ptr -> bool
2023-01-18 02:40:56 +01:00
Alexei Kotov
434b4deda1
Don't use xkf if xnif is merely the base model (bug #5371 )
2023-01-14 04:55:12 +03:00
elsid
c173348cbe
Use default initializers for ESM::RefNum members
...
Instead of unset function that is removed now and assignments all over the code.
2023-01-10 00:44:51 +01:00
Petr Mikheev
2b4e613522
Add missing initializer in mwworld/worldmodel.cpp ( fixes #7135 )
2023-01-08 21:55:42 +01:00
psi29a
83718878b2
Merge branch 'Load_ESM4' into 'master'
...
Loading ESM4 data and storing them in the ESMStore
See merge request OpenMW/openmw!2557
2023-01-07 22:17:17 +00:00
florent.teppe
b88eee08c2
Store display's the ESM4's RecnameInt when not found
2023-01-04 14:07:47 +01:00
florent.teppe
631fa26872
Applies review advice.
2023-01-04 12:22:16 +01:00
florent.teppe
e80dbd7c95
Moved the test to test_store.cpp where it belongs
2023-01-04 00:17:45 +01:00
florent.teppe
64a9f742da
Improves check: throws an error that says which RecName is used twice.
2023-01-03 23:28:31 +01:00
florent.teppe
9b1c405467
On store creation checks that each record has a different RecordId.
2023-01-03 22:16:42 +01:00
florent.teppe
3b2d9161c4
Applied review advice
...
better deals with templated functions meant for esm3 used by esm4s.
simplified loading of esm4 and dealing with unhandled record types.
2023-01-02 19:20:03 +01:00
florent.teppe
077cf97bc4
The esm4 reader logic is mutualised
...
to avoid copy pasting code, readerutils gives functions that take visitors as params to decide how a record must be handled
Check encoder exists, and get value of stateless encoder.
fixes code formatting conventions
Fixed output of record with RefId
also fixed readTypedRecord and readRecord to have the proper return types
Check if the type has a sRecordId
2023-01-01 19:22:27 +01:00
florent.teppe
c721a6cafa
Initial commit to load ESM4
...
Some data is actually loaded and store in ESM Store
Any new ESM4 will go through the same code path and be automatically sent to the right store
2023-01-01 16:22:57 +01:00
psi29a
d5f5e53714
Merge branch 'playercontrols' into 'master'
...
Move some of player controls logic from C++ to Lua
See merge request OpenMW/openmw!2541
2022-12-30 16:57:40 +00:00
elsid
755067f0f3
Remove redundant ESM::RefId member functions
2022-12-30 00:32:47 +01:00
Petr Mikheev
103908ffc7
Move getNorthVector out of MWWorld::World (used only in one place)
2022-12-28 22:06:49 +01:00
Petr Mikheev
aef2e9d8de
Replace World::getExterior with WorldModel::getCell
2022-12-28 22:06:49 +01:00
Petr Mikheev
1869aeae5c
Move some of player controls logic from C++ to Lua
2022-12-28 22:04:19 +01:00
Petr Mikheev
0fef8f12d0
Remove functions WorldModel::rest
and WorldModel::recharge
2022-12-28 12:45:11 +01:00
Petr Mikheev
b8fb013edf
Merge MWLua::ObjectRegistry and MWWorld::WorldModel
2022-12-28 12:45:11 +01:00
psi29a
7827d3ae8f
Merge branch 'fix_hour_modulo' into 'master'
...
Fix hour modulo expression (#7121 )
Closes #7121
See merge request OpenMW/openmw!2556
2022-12-28 10:33:20 +00:00
elsid
25ead80d8b
Fix hour modulo expression
...
Round result of std::fmod(hours, 24) to the nearest float below 24 on double to
float conversion when it is not. Add special type and conversion function along
with tests to be used in all places where such conversion happens.
To avoid producing hours equal to 24 due to double to float precision loss.
2022-12-28 00:04:04 +01: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
1ef1de974d
script blacklist => RefId
...
Applies changes from review
Fixed clang format
Clang format + review.
2022-12-27 19:16:21 +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
42e45723b7
Fixes issue in MW script compilation that would silently produce the wrong bytecode
...
Fixes issue when fetching MyGui values that were stored as RefId but fetched as String
Removed some uncessary copies, fixed issues with lowercase and uneeded changes
2022-12-27 19:15:57 +01:00
florent.teppe
0f3499f504
Renamed string => Id, makes more sense considering the new underlying type
...
Fixes unnecessary copies, and issues with case sensitive comparisons.
fixed modification that wasn't necessary
Fixed type mismatch, and unecessary copy
2022-12-27 19:15:57 +01:00
florent.teppe
30a020883e
Avoids unecessary copies
...
Fixed issue with lowerCase
Oups fixed compialtion on openMW_test_suite
2022-12-27 19:15:57 +01:00
florent.teppe
d49f60d2d6
To change fewer things with the master implementation, the Id isn't changed to lower case on creation
...
lower case utility functions used in comparison functions
2022-12-27 19:15:57 +01:00
florent.teppe
65cdd489fb
create a specific esm reader function for RefID to avoid allocation for string and then again for RefId
...
Fixed some types
removed useless header
applied clang format
fixed compile tests
fixed clang tidy, and closer to logic before this MR
Removed hardcoded refids
unless there is a returned value we don't use static RefIds
can use == between RefId and hardcoded string
Fix clang format
Fixed a few instances where std::string was used, when only const std::string& was needed
removed unused variable
2022-12-27 19:15:57 +01:00
fteppe
09d461a8cd
fixed Topic selected event
...
Fix rebase
2022-12-27 19:15:56 +01:00
fteppe
7da38113be
Changed more hardcoded RefId to be static to avoid multiple runtime creations
...
adresses multiple review comments
2022-12-27 19:15:56 +01:00
fteppe
b57dd6d083
Fixed search random, it is a prefix so not a refId
...
Fixed situation where we return a const reference to a static variable that may change if the same function is called multiple times
2022-12-27 19:15:55 +01:00
fteppe
62d8fe3fc2
changed a few hardcoded refIds used in mutliple places to be defined only once in a variable
2022-12-27 19:15:55 +01:00
fteppe
2f2e401559
is Hidden marker now takes a const RefId& instead of a string_view
2022-12-27 19:15:55 +01:00
fteppe
c8bb733360
removed clear() function, the only way to change the Id from the outside is from the assignment operator
...
replaced ciEqual with == operator
2022-12-27 19:15:55 +01:00