Petr Mikheev
3b43cc2aea
Lua: change obj.rotation from Euler angles to Quaternion
2023-06-12 00:16:42 +02:00
Evil Eye
9772845f7b
Address feedback
2023-06-11 21:13:34 +02:00
psi29a
1d5b73f20a
Merge branch 'youonlyneedtounlockonce' into 'master'
...
Don't unlock unlocked objects now that unlock is no longer idempotent
See merge request OpenMW/openmw!3125
2023-06-11 17:41:23 +00:00
Evil Eye
66d9d7e585
Expose levelled creatures to Lua
2023-06-11 15:13:46 +02:00
Evil Eye
24c1909d52
Don't unlock unlocked objects now that unlock is no longer idempotent
2023-06-11 09:43:42 +02:00
Evil Eye
3c588900dd
Apply elsid's suggestion and revert 3a888ef543
2023-06-10 22:04:14 +02:00
elsid
e6e6b65ab3
Remove redundant manipulators
2023-06-10 13:14:52 +02:00
psi29a
724d29aa63
Merge branch 'add_getBounty_to_types_Player' into 'master'
...
Lua: Add getCrimeLevel() to types.Player
See merge request OpenMW/openmw!3118
2023-06-10 08:48:33 +00:00
psi29a
3fcf9dc1d2
Merge branch 'set_scale' into 'master'
...
Allow Lua to set and get GameObject's in game scale
See merge request OpenMW/openmw!3114
2023-06-10 08:48:14 +00:00
psi29a
ec2f0e4645
Merge branch 'fragile' into 'master'
...
More closely replicate Morrowind.exe's locks
Closes #7415
See merge request OpenMW/openmw!3116
2023-06-10 08:47:27 +00:00
psi29a
2686e586e5
Merge branch 'dev-7019' into 'master'
...
Fix improper access of stereo manager by other shared components
See merge request OpenMW/openmw!2437
2023-06-09 21:25:21 +00:00
psi29a
766b829ce6
Merge branch 'fix_7385' into 'master'
...
Fix #7385
Closes #7385
See merge request OpenMW/openmw!3117
2023-06-09 21:23:54 +00:00
psi29a
ca57bbe644
Merge branch 'debug_tgm_tcl' into 'master'
...
Lua commands debug.toggleGodMode and debug.toggleCollision
See merge request OpenMW/openmw!3113
2023-06-09 07:26:44 +00:00
Tobias Tribble
0e6155c529
Added delayed action
2023-06-08 23:50:54 -05:00
Kindi
8962cb818c
Add getCrimeLevel() to types.Player
2023-06-09 07:01:12 +08:00
Petr Mikheev
801a5a3213
Fix #7385
2023-06-08 22:45:37 +02:00
Evil Eye
a5b147d44d
Add a clarifying comment
2023-06-08 21:56:54 +02:00
Evil Eye
e791d2b498
Fix unit tests
2023-06-08 21:10:11 +02:00
Evil Eye
eeda48ec50
Drop support for --fs-strict
2023-06-08 21:10:09 +02:00
Evil Eye
da4e04522b
More closely replicate Morrowind.exe's locks
2023-06-08 20:10:32 +02:00
jvoisin
583a0b4d04
Apply jvoisin's suggestions
2023-06-08 18:35:53 +02:00
Evil Eye
3a888ef543
Prevent a static initialization order fiasco
2023-06-08 18:35:52 +02:00
Evil Eye
627bfa1155
Silence a clang warning
2023-06-08 18:35:52 +02:00
Evil Eye
f62ba346e1
Appease the formatting gods
2023-06-08 18:35:52 +02:00
Evil Eye
2cb77ed48f
Dehardcode skill selection
2023-06-08 18:35:52 +02:00
Evil Eye
9a93dcc39e
Dehardcode the list of skills in the stats window
2023-06-08 18:35:51 +02:00
Evil Eye
15a5fa84f6
Use std::variant in CachedStat
2023-06-08 18:35:51 +02:00
Evil Eye
65b22975c9
Remove SkillEnum
2023-06-08 18:35:50 +02:00
Evil Eye
72f8f9d1ad
Replace remaining skill indices in NpcStats
2023-06-08 18:35:49 +02:00
Evil Eye
1e0ed42294
Use RefId for skills in StatsListener
2023-06-08 18:35:48 +02:00
Evil Eye
28025e84f7
Replace more instances of ESM::Skill::Length
2023-06-08 18:35:48 +02:00
Evil Eye
47c1569961
Use RefId key for NPC skills
2023-06-08 18:35:48 +02:00
Evil Eye
1b956521fc
Reduce skill lookups by index
2023-06-08 18:35:47 +02:00
Evil Eye
16c0f0d5cc
Use a regular TypedDynamicStore for ESM:Skill
2023-06-08 18:35:47 +02:00
Tobias Tribble
41a2c82f93
Added scale property and setScale function
2023-06-07 19:23:36 -05:00
Petr Mikheev
e773b9d055
Lua commands debug.toggleGodMode and debug.toggleCollision
2023-06-07 23:41:29 +02:00
Petr Mikheev
3b5849add8
Move content files functions to core.contentFiles and add obj.contentFile
2023-06-07 20:57:48 +02:00
Petr Mikheev
a778dff61d
Add Lua functions to get the current load order and search objects by RefNum/FormId
2023-06-07 20:57:48 +02:00
Petr Mikheev
773669e69b
Add Lua script to handler ESM4 doors with Flag_AutomaticDoor
2023-06-07 20:57:48 +02:00
psi29a
75c371de66
Merge branch 'classyimage' into 'master'
...
Handle non-string RefIds when displaying a class image
See merge request OpenMW/openmw!3111
2023-06-07 06:51:24 +00:00
Evil Eye
6e39c0336c
Handle non-string RefIds when displaying a class image
2023-06-06 17:41:13 +02:00
psi29a
54b0ab9e01
Merge branch 'addpropstartingposandrot' into 'master'
...
Add startingPosition and startingRotation property to GameObject
See merge request OpenMW/openmw!3106
2023-06-06 13:16:33 +00:00
Petr Mikheev
7cecf2844a
Fix #7411
2023-06-05 22:22:58 +02:00
psi29a
25c1e6abee
Merge branch 'clickbait' into 'master'
...
Use std::array in various ESM structs
See merge request OpenMW/openmw!3103
2023-06-05 07:19:38 +00:00
elsid
457fa16e37
Load existing exterior CellStore when required
2023-06-04 22:33:27 +02:00
elsid
01775dd6f0
Try create CellStore for interior cell when not found
2023-06-04 22:33:22 +02:00
psi29a
1843345510
Merge branch 'world_model_absent_cell' into 'master'
...
Do not rely on exceptions to handle absent cell
See merge request OpenMW/openmw!3098
2023-06-04 11:28:54 +00:00
psi29a
2f5bfb4df2
Merge branch 'fix-#7410' into 'master'
...
fix #7410
Closes #7410
See merge request OpenMW/openmw!3104
2023-06-04 11:28:26 +00:00
psi29a
d8463a34d3
Merge branch 'quotes' into 'master'
...
Remove redundant quotes
See merge request OpenMW/openmw!3091
2023-06-04 11:28:14 +00:00
Kindi
dfafac72e9
add startingPosition and startingRotation lua property to gameobject
2023-06-04 14:35:33 +08:00
florent.teppe
04e026c53f
getRecNameString now constexpr
...
getTypeDescription uses a static constexpr variable so we don't return ref to temp memory.
2023-06-03 20:28:25 +02:00
Evil Eye
6b7e7acd16
Replace a number of incorrect index types
2023-06-03 16:30:35 +02:00
Evil Eye
e01a3076dd
Use std::array in NpcStats
2023-06-03 14:26:37 +02:00
Evil Eye
a5bb6c7d8d
Use std::array in NPDTstruct52
2023-06-03 13:27:45 +02:00
Evil Eye
dd83da5eba
Use std::array in FADTstruct
2023-06-03 13:11:49 +02:00
Evil Eye
7be005c9a5
Use std::array in CLDTstruct
2023-06-03 11:58:09 +02:00
Evil Eye
8a474b9807
Use std::array in RADTstruct
2023-06-03 10:45:32 +02:00
psi29a
55cd30ea3b
Merge branch 'string_ref_id_utf8' into 'master'
...
Support UTF-8 by StringRefId::toDebugString (#7407 )
Closes #7407
See merge request OpenMW/openmw!3096
2023-06-03 08:17:19 +00:00
elsid
4a8471ce78
Use original RefId to remove info from InfoOrder
2023-06-03 01:12:21 +02:00
elsid
a91f376892
Do not rely on exceptions to handle absent cell
2023-06-02 13:18:09 +02:00
psi29a
25bbaa2343
Merge branch 'fix_remove_deleted_dialogue_info' into 'master'
...
Fix handling deleted DIAL records (#7397 )
Closes #7397
See merge request OpenMW/openmw!3097
2023-06-02 08:56:24 +00:00
psi29a
d41c7bcaf4
Merge branch 'fix_esmstore_double_initialization' into 'master'
...
Fix the bug "ESMStore::setUp() is called twice" that causes duplicated objects in ESM4 cells
See merge request OpenMW/openmw!3084
2023-06-02 07:31:02 +00:00
psi29a
0bb652d7ce
Merge branch 'clickbait' into 'master'
...
Resolve Attribute GMSTs
See merge request OpenMW/openmw!3090
2023-06-02 07:30:40 +00:00
elsid
b621bfcef0
Define SharedIterator as proper random access iterator
...
Drop Container template argument as it's always std::vector.
2023-06-01 23:48:49 +02:00
elsid
6a3b6c6e4f
Fix handling deleted DIAL records
...
* Use composite RefId to remove INFO record of deleted DIAL record. OrderedInfo
stores original RefId while InfoCollection stores composite one.
* Do not erase deleted topic from InfoOrderByTopic map. To keep all deleted
record ids for InfoCollection::sort call to make sure reorderRowsImp is called
with correct number of indices.
2023-06-01 23:35:40 +02:00
elsid
78b3f7288a
Support UTF-8 by StringRefId::toDebugString
2023-06-01 22:16:47 +02:00
Petr Mikheev
420916327d
Fix the bug "ESMStore::setUp() is called twice" that causes duplicated objects in ESM4 cells
2023-06-01 11:58:03 +02:00
psi29a
8e3e351015
Merge branch 'hide_ptr_registry' into 'master'
...
Make WorldModel a front-end for PtrRegistry
See merge request OpenMW/openmw!3087
2023-06-01 09:32:57 +00:00
psi29a
27a879de9a
Merge branch 'tree_and_furniture' into 'master'
...
Load ESM4::Tree and ESM4::Furniture
See merge request OpenMW/openmw!3040
2023-06-01 09:15:46 +00:00
psi29a
83c8312060
Merge branch 'esm4_cell_fixes' into 'master'
...
A few fixes related to ESM4::Cell
See merge request OpenMW/openmw!3083
2023-06-01 07:51:34 +00:00
psi29a
9306cb2cfd
Merge branch 'rm_cell_store_equality' into 'master'
...
Replace operator== for CellStore with pointer equality
See merge request OpenMW/openmw!3081
2023-06-01 07:51:09 +00:00
Andrei Kortunov
9001dc8f88
Remove redundant single quotes
2023-06-01 09:38:08 +04:00
elsid
9012207e32
Make WorldModel a front-end for PtrRegistry
2023-05-31 21:44:27 +02:00
Evil Eye
08f35fe839
Add ESM::Skill::mWerewolfValue
2023-05-31 17:45:20 +02:00
Evil Eye
7b0680de5f
Resolve attribute GMST members
2023-05-31 17:02:18 +02:00
Evil Eye
eea730768b
Replace sIconNames with ESM::Skill::mIcon
2023-05-30 20:22:04 +02:00
Evil Eye
9c819b5705
Disallow formatting of UString
2023-05-30 17:35:26 +02:00
elsid
cfab425fb2
Replace operator== for CellStore with pointer quality
...
Equality operator is confusing and redundant in this case.
It should not be possible to have 2 CellStores for the same cell. There is no
copy constructor defined so it's not possible to get a copy. It's possible to
independently create second store when another one already exist but it would
mean a bug.
Explicitly delete CellStore copy and move constructors and assignment operators
to enforce this.
2023-05-30 08:46:44 +02:00
Petr Mikheev
84d7da1f2c
Ignore per-cell water height in exterior ESM4::Cell
2023-05-29 22:39:26 +02:00
Petr Mikheev
5cb4c66266
Avoid using ESM4::Cell with uninitialized fields
2023-05-29 22:37:25 +02:00
elsid
97fed756c8
Properly support portable configuration for bulletobjectool and navmeshtool
2023-05-29 22:29:36 +02:00
Petr Mikheev
01c410d6b1
Remove mPersistentExteriors index; fix incorrect Rec_Persistent flag check.
2023-05-29 22:16:56 +02:00
psi29a
8976a1594f
Merge branch 'clickbait' into 'master'
...
Replace sSkillNameIds with ESM::Skill::mName
See merge request OpenMW/openmw!3080
2023-05-29 18:13:20 +00:00
elsid
4cbaa722dd
Merge branch 'wazabear/lambdascope' into 'master'
...
Fix lambda scope for postprocess bindings
See merge request OpenMW/openmw!3070
2023-05-29 17:12:38 +00:00
Cody Glassman
6747619cb1
Fix lambda scope for postprocess bindings
2023-05-29 17:12:37 +00:00
Petr Mikheev
bf49855d9f
Test handling of BSXFlags in bulletnifloader
2023-05-29 18:47:27 +02:00
Petr Mikheev
788a4d32aa
Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty.
2023-05-29 18:47:27 +02:00
Petr Mikheev
1b669db017
Load ESM4::Tree and ESM4::Furniture
2023-05-29 18:47:27 +02:00
Evil Eye
9c60a6fa4d
Replace sSkillNameIds with ESM::Skill::mName
2023-05-29 17:56:14 +02:00
elsid
731ff90c37
Remove unused include
2023-05-29 15:53:19 +02:00
elsid
947e8f0e94
Use CellStore::mStore instead of MWBase::Environment::get()
2023-05-29 15:53:19 +02:00
psi29a
df57f8004b
Merge branch 'default' into 'master'
...
Replace some empty constructors and destructors with default
See merge request OpenMW/openmw!3078
2023-05-29 13:06:19 +00:00
Evil Eye
9214ffb50b
Replace some empty constructors and destructors with default
2023-05-29 13:37:19 +02:00
florent.teppe
ff9e04062d
Applies changes from previous commit
...
from commit bb1d040ac8
Was lost during rebase.
2023-05-29 12:10:42 +02:00
florent.teppe
ad8cfde4e0
ESM::LandData no longer a virtual interface
...
instead it is constructed from ESM::Land or ESM4::Land
2023-05-29 12:10:42 +02:00
florent.teppe
4c4ed77bd7
Fixes Quad tree terrain missing in some places
...
the function that queried if data existed or not didn't take the worlspace into account.
2023-05-29 12:10:42 +02:00
florent.teppe
b29be74491
ground cover manager and object paging exists per worldspace.
...
They don't work though. But at least it doesn't crash. You get a morrowind world on top of the skyrim world.
But it fixes the crashes.
2023-05-29 12:10:42 +02:00
fteppe
22dc383f63
fixes errors and warnings
...
Applies review comments
getWorldspaceTerrain => returns a reference because never null
crashfix in navigator
updateLandPositions fixes naming of it
const ESM4::Land* MWWorld::Store<ESM4::Land>::search(ESM::ExteriorCellLocation cellLocation) const removes useless else
ExteriorCellLocation uses default initializers
get terrain height returns -MAX_FLOAT when there is no esm4 terrain.
applied review comments
use default initlializer when possible
factorise code
uses pattern matching in for loop.
2023-05-29 12:10:42 +02:00
florent.teppe
7d88a240d3
no default terrain for esm4 exterior.
2023-05-29 12:10:41 +02:00
florent.teppe
2bb17279df
linux build
...
clang format 14.0
Arm64 build
2023-05-29 12:10:41 +02:00
florent.teppe
a9e0489867
fixes stutters => bugs in the way cells were updated.
2023-05-29 11:32:14 +02:00
florent.teppe
0e4d21a40c
takes the right terrain bounds.
2023-05-29 11:32:14 +02:00
florent.teppe
7bc4fc6bf9
Fix issues on terrain change
...
terrain Preloader now preloads the right terrain
2023-05-29 11:32:14 +02:00
florent.teppe
d0211acf9e
Fixes bug in terrain loading + collision heightmap works
...
although terrain rendering is 100% broken right now
2023-05-29 11:32:13 +02:00
florent.teppe
c35c7b3640
ESM4::Land loaded, added to store and to land objects
...
it does not work yet. Some things are displayed, but it looks all wrong.
2023-05-29 11:31:37 +02:00
florent.teppe
fffcf52316
land manager cache's key is an ExteriorCellLocation
...
ESM4::Land is now a ESM::LandData
2023-05-29 11:31:37 +02:00
florent.teppe
e0fa15b727
Abstracted Land data that can be used by esm3 and esm4.
2023-05-29 11:31:37 +02:00
florent.teppe
e09cf6ac61
enable terrain takes a worldspace as input
...
enable terrain anslo switches the worldspace.
2023-05-29 11:31:37 +02:00
florent.teppe
1b718f09c5
adding worldspace info to terrain data structures
...
Rendering manager can have multiple terrain, one for each queried worldspace
Terrain::World has a worldspace member
storage functions require a worldspace parameter.
2023-05-29 11:31:37 +02:00
florent.teppe
93e7b0d946
Terrain has a mandatory worldspace in constructor
...
getTerrainHeightAt takes a worldspace.
Doesn't change anything for now => Therrain is created with the default ESM3 worldspace, and is never changed.
2023-05-29 11:31:36 +02:00
psi29a
4399748889
Merge branch 'clickbait' into 'master'
...
Move more arrays to the ESM::Attribute struct
See merge request OpenMW/openmw!3074
2023-05-29 09:00:22 +00:00
elsid
02adb91859
Simplify WorldModel::getAll
...
There is no need to have generic forEach template function.
2023-05-29 00:01:46 +02:00
psi29a
c368c188f2
Merge branch 'fix_position_cell_crash' into 'master'
...
Use sDefaultWorldspaceId as fallback worldspace for PositionCell command
See merge request OpenMW/openmw!3073
2023-05-28 17:42:16 +00:00
Evil Eye
90a3a7b62f
Add mWerewolfGMST
2023-05-28 15:28:34 +02:00
Evil Eye
a5e1c87fb8
Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons
2023-05-28 15:10:53 +02:00
elsid
06af4cb56a
Use sDefaultWorldspaceId as fallback worldspace for PositionCell command
...
store is nullptr at this point because there was no cell found.
2023-05-28 14:25:53 +02:00
elsid
86db640c8b
Increment revision on clearing PtrRegistry
...
Setting it to 0 may not lead to the change detected by clients. Potentially
mRevision may already have value 0. For example on overflow.
2023-05-28 13:04:20 +02:00
elsid
a581e394b4
Check for revision inequality
...
It's not possible to have SafePtr with mLastUpdate from the future. But
theoretically it's possible to get PtrRegistry::mRevision overflow so operator
less would return false when there is a change.
2023-05-28 13:04:20 +02:00
elsid
ce91784085
Move Ptr registry into a separate type
...
There is no dependency on the rest of the WorldModel state.
2023-05-28 13:04:17 +02:00
unknown
14600de185
Remove sAttributeIds and sSkillIds
2023-05-27 21:54:13 +02:00
elsid
d98852fdbe
Use std::count_if to implement WorldModel::countSavedGameRecords
2023-05-27 15:49:36 +02:00
elsid
3a66854c3c
Avoid confusion for generated cell flags
2023-05-27 15:49:36 +02:00
elsid
60139c6bd5
Use WorldModel::mStore instead of MWBase::Environment::get().getESMStore()
2023-05-27 15:49:36 +02:00
elsid
183202cd65
Remove WorldModel::getCellByPosition function
...
It's used in a single place. Move the code there.
2023-05-27 15:49:36 +02:00
elsid
235eb65c97
Rename positionToCellIndex to match return type
2023-05-27 15:49:36 +02:00
elsid
98e80d65b0
Remove unused include
2023-05-27 15:49:36 +02:00
elsid
b6cd6402cc
Use ranged for loop
2023-05-27 15:49:36 +02:00
elsid
a04eb9d26c
Move WorldModel::getPtr(const ESM::RefId&, CellStore&) to CellStore
...
The function does not depend on WorldModel.
2023-05-27 15:49:36 +02:00
elsid
df6630a15c
Move WorldModel private functions to bottom
...
This is API class. A reader most likely need to know public functions first.
2023-05-27 15:49:36 +02:00
elsid
181c894e4c
Skip already visited cells when looking for ptr
2023-05-26 22:51:03 +02:00
elsid
466a7cedbb
Convert pointer to referece where nullptr is not acceptable
2023-05-26 22:42:50 +02:00
elsid
1b116240a3
Try return existing CellStore from WorldModel::getCellStore first
2023-05-26 22:40:03 +02:00
Evil Eye
877f6747be
Deduplicate specialization code
2023-05-26 12:16:47 +02:00
AnyOldName3
5f4e349ea1
Try and compute planes based on cheaper meshes to skip more groundcover isntances
2023-05-26 00:21:44 +01:00
elsid
dc8dfe81ce
Add more details to exceptions
2023-05-25 20:56:07 +02:00
elsid
d852ac20f5
Log loading content file
2023-05-25 20:56:07 +02:00
Mads Buvik Sandvei
85a30c9ad0
Fix signature of MWMechanics::MagicEffects::get. Fix a mistake in the docs.
2023-05-25 18:12:18 +02:00
Petr Mikheev
4ed283bb15
Merge branch 'create_record_types' into 'master'
...
Allow creating Activator, Armor, Clothing, Misc, Weapon records via lua
See merge request OpenMW/openmw!2944
2023-05-25 08:00:13 +00:00
Zackhasacat
ef004e5eba
Allow creating Activator, Armor, Clothing, Misc, Weapon records via lua
2023-05-25 08:00:12 +00:00
psi29a
d3ed04c551
Merge branch 'lua-activeeffects' into 'master'
...
Lua: Actor api for active effects and active spells
See merge request OpenMW/openmw!3036
2023-05-25 07:49:08 +00:00
AnyOldName3
3831714f07
This is not more readable
2023-05-24 00:13:56 +01:00
AnyOldName3
c41befadfb
Use correct planes for the new matrix
2023-05-24 00:02:13 +01:00
Mads Buvik Sandvei
40170d8953
is_automagical false line for ActorStore
2023-05-23 22:55:43 +02:00
Evil Eye
17c8e63d3a
Fix invalid memory usage in stats tooltip
2023-05-23 20:03:12 +02:00
Mads Buvik Sandvei
97ea626ba2
Clang'd
2023-05-23 19:49:47 +02:00
Mads Buvik Sandvei
4f88988131
Moved check for actor/non-actor to ActorStore constructor. Refactor ActorSpells type to be an ActorStore type.
2023-05-23 19:44:51 +02:00
Mads Buvik Sandvei
410e8b100a
Elsid comments
2023-05-23 19:30:29 +02:00
Mads Buvik Sandvei
4bf23f152b
Revert use of string_view to std::string for effectIdTo* methods.
2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
9a59330561
refactor effect names in loadmgef. Added a map from effect index to non-gmst effect name for use in lua scripts.
2023-05-23 18:11:59 +02:00
Mads Buvik Sandvei
151521bb68
Unused function
2023-05-23 18:11:44 +02:00