Commit Graph

1118 Commits (f398896ec8562a8115f82705e6bac7f932b75a0b)

Author SHA1 Message Date
Alexei Kotov 25f5c5651d Sort ESM3ExteriorCellRefIds earlier than StringRefIds
Causes inconsistency with the serialized type enumeration, but necessary for COC to work correctly
1 year ago
Evil Eye 7b909c8d24 Create getRefIds 2 years ago
Evil Eye c59032fd66 Make RefId::deserializeText return an empty RefId if no pre-existing StringRefId can be found 2 years ago
psi29a 2f5bfb4df2 Merge branch 'fix-#7410' into 'master'
fix #7410

Closes #7410

See merge request OpenMW/openmw!3104
2 years ago
elsid 67e32abd4f
Add default initialization to ESM::Position members 2 years ago
florent.teppe 04e026c53f getRecNameString now constexpr
getTypeDescription uses a static constexpr variable so we don't return ref to temp memory.
2 years ago
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
2 years ago
psi29a 0bb652d7ce Merge branch 'clickbait' into 'master'
Resolve Attribute GMSTs

See merge request OpenMW/openmw!3090
2 years ago
elsid 78b3f7288a
Support UTF-8 by StringRefId::toDebugString 2 years ago
Evil Eye 7b0680de5f Resolve attribute GMST members 2 years ago
Petr Mikheev 1b669db017 Load ESM4::Tree and ESM4::Furniture 2 years ago
florent.teppe ad8cfde4e0 ESM::LandData no longer a virtual interface
instead it is constructed from ESM::Land or ESM4::Land
2 years ago
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.
2 years ago
florent.teppe d0211acf9e Fixes bug in terrain loading + collision heightmap works
although terrain rendering is 100% broken right now
2 years ago
florent.teppe fffcf52316 land manager cache's key is an ExteriorCellLocation
ESM4::Land is now a ESM::LandData
2 years ago
florent.teppe e0fa15b727 Abstracted Land data that can be used by esm3 and esm4. 2 years ago
Evil Eye 90a3a7b62f Add mWerewolfGMST 2 years ago
Evil Eye a5e1c87fb8 Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons 2 years ago
unknown 14600de185 Remove sAttributeIds and sSkillIds 2 years ago
elsid 235eb65c97
Rename positionToCellIndex to match return type 2 years ago
Evil Eye 877f6747be Deduplicate specialization code 2 years ago
Pierre Mossler e6838cddc7 missing include in attr.cpp 2 years ago
Mads Buvik Sandvei b791ce9132 Remove redundant qualifiers 2 years ago
Mads Buvik Sandvei 7ba43c9426 actor.ActiveEffects and actor.ActiveSpells 2 years ago
florent.teppe a3bd6e7e47 ESM::ExteriorCellIndex => ESM::ExteriorCellLocation 2 years ago
florent.teppe 393357abc0 ESM::Cell::positionToCellIndex returns a ESM::ExteriorCellIndex
and takes a worldspace id as input
ESM::getCellSize takes a wordspace as input.
removed useless static in static inline funcs
2 years ago
florent.teppe 559830f59a applies review comments
Removes ToLowercase after .serializeText
removed unused variable
!ptr => ptr == nullptr
better indentation + error message on throw
friend struct std::hash<...> useless on struct with all public fields.
2 years ago
florent.teppe 3d06cabf6a indexToPosition moved from world -> esm/util.hpp 2 years ago
florent.teppe 1cf0cd5628 moved mwworld/cellutils.hpp -> esm/util.hpp 2 years ago
florent.teppe 75561abfca Factorises code and fixes preload bug. 2 years ago
florent.teppe 141878f30d int x, int y , ESM::RefId worldspace => ESM::ExteriorCellIndex
also removed the changeToExteriorCell that only took a position as input, didn't work with esm4.
2 years ago
florent.teppe 1d03b54694 maps with tuple key instead of map of map
instead of using a map with key as exterior and map of <int ,int >, Cell as value we use a single map with a tuple x,y,exterior as key
2 years ago
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.
2 years ago
florent.teppe 3bbf60373a Keep things coherent between references and and cell table 2 years ago
psi29a 70ddca78bf Merge branch 'ref_id_print_tests' into 'master'
Add more tests for printing RefId and clarify some constants

See merge request OpenMW/openmw!2945
2 years ago
elsid 7db14b3392
Add more tests for printing RefId and clarify some constants 2 years ago
elsid c97df7d770
Check FormIdRefId value in constructor 2 years ago
Petr Mikheev 00beb06391 Initial Lua bindings for ESM4 types; bindings for ESM4Door. 2 years ago
Evil Eye 97fb06d8c9 Add RefId::is 2 years ago
elsid 20129568e6
Replace VisitorCellIdIsESM3Ext with RefId::getIf function 2 years ago
Petr Mikheev ff774d6406 Load more ESM4 records 2 years ago
Petr Mikheev f09a689a4f Merge ESM::RefNum and ESM4::FormId 2 years ago
elsid bd10becb65
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< 2 years ago
elsid 794050df63
Fix and add tests for ESM3ExteriorCellRefId serialization and text representation 2 years ago
florent.teppe 0d17e20490 Implements serialize/deserialize
fixes test compilation.
2 years ago
florent.teppe 21bd28542a Applies review advice
2d coord hash moved to hash.hpp file
format version adds suffix to be more coherent
don't use ESM::RefId::sEmpty
RefId equality with string_view, conversion to refId unecessary
action teleport remove test that mCellId is empty
removes some const references, when copy is enough
invalid refid => empty refid
removes useless change
2 years ago
florent.teppe d782d37ee2 Make sure Vec2iRefId is trivially copyable on GCC 11.3
std::pair<int, int> isn't trivially copyable on some compilers
so a specific struct is defined, it's an int pair, but it should be recognised by GCC 11.3 as trivially copyable

Vec2iRefId => ESM3ExteriorCellRefId

more explcit name and use mX,mY instead of pair
renamed files and enum
2 years ago
florent.teppe 4c15064a83 Create new Vec2i RefId for ESM3 exterior cells.
Applies the necessary changes to use !2708 for the new Id type
2 years ago
florent.teppe c39dd576f8 Gets rid of most ESM::CellId 2 years ago
psi29a 0a791528bc Merge branch 'fix_index_ref_id_hash' into 'master'
Shift record type value for IndexRefId hash

See merge request OpenMW/openmw!2885
2 years ago