Write AiSequence and Script data field by field via decompose function

Use the same function to load and save to have single place with field order
definition. Use concepts for overload over different types.
This commit is contained in:
elsid 2024-01-12 02:15:54 +01:00
parent 3592dc4c88
commit 6451750890
No known key found for this signature in database
GPG key ID: 4DE04C198CBA7625
8 changed files with 104 additions and 28 deletions

View file

@ -422,7 +422,6 @@ namespace ESM
std::copy(std::begin(idle), std::end(idle), record.mData.mIdle);
record.mData.mShouldRepeat = 12;
record.mDurationData.mRemainingDuration = 13;
record.mDurationData.mUnused = 14;
record.mStoredInitialActorPosition = true;
constexpr float initialActorPosition[3] = { 15, 16, 17 };
static_assert(std::size(initialActorPosition) == std::size(record.mInitialActorPosition.mValues));
@ -438,7 +437,6 @@ namespace ESM
EXPECT_THAT(result.mData.mIdle, ElementsAreArray(record.mData.mIdle));
EXPECT_EQ(result.mData.mShouldRepeat, record.mData.mShouldRepeat);
EXPECT_EQ(result.mDurationData.mRemainingDuration, record.mDurationData.mRemainingDuration);
EXPECT_EQ(result.mDurationData.mUnused, record.mDurationData.mUnused);
EXPECT_EQ(result.mStoredInitialActorPosition, record.mStoredInitialActorPosition);
EXPECT_THAT(result.mInitialActorPosition.mValues, ElementsAreArray(record.mInitialActorPosition.mValues));
}