snapshot: try to make sizes an opaque value to the caller
This commit is contained in:
@@ -34,7 +34,7 @@ class basic_snapshot {
|
||||
template<typename Component, typename Archive, typename It>
|
||||
void get(Archive &archive, std::size_t sz, It first, It last) const {
|
||||
const auto view = reg->template view<const Component>();
|
||||
archive(typename traits_type::entity_type(sz));
|
||||
archive(static_cast<typename traits_type::entity_type>(sz));
|
||||
|
||||
for(auto it = first; it != last; ++it) {
|
||||
if(reg->template all_of<Component>(*it)) {
|
||||
@@ -85,10 +85,11 @@ public:
|
||||
*/
|
||||
template<typename Archive>
|
||||
const basic_snapshot &entities(Archive &archive) const {
|
||||
const auto sz = reg->size();
|
||||
const auto sz = static_cast<typename traits_type::entity_type> (reg->size());
|
||||
const auto released = static_cast<typename traits_type::entity_type>(reg->released());
|
||||
|
||||
archive(sz);
|
||||
archive(reg->released());
|
||||
archive(released);
|
||||
|
||||
for(auto first = reg->data(), last = first + sz; first != last; ++first) {
|
||||
archive(*first);
|
||||
@@ -218,8 +219,8 @@ public:
|
||||
*/
|
||||
template<typename Archive>
|
||||
const basic_snapshot_loader &entities(Archive &archive) const {
|
||||
typename registry_type::size_type length{};
|
||||
typename registry_type::size_type released{};
|
||||
typename traits_type::entity_type length{};
|
||||
typename traits_type::entity_type released{};
|
||||
|
||||
archive(length);
|
||||
archive(released);
|
||||
@@ -433,8 +434,8 @@ public:
|
||||
*/
|
||||
template<typename Archive>
|
||||
basic_continuous_loader &entities(Archive &archive) {
|
||||
typename registry_type::size_type length{};
|
||||
typename registry_type::size_type released{};
|
||||
typename traits_type::entity_type length{};
|
||||
typename traits_type::entity_type released{};
|
||||
|
||||
archive(length);
|
||||
// discards the number of destroyed entities
|
||||
|
||||
@@ -96,7 +96,6 @@ TEST(Snapshot, Dump) {
|
||||
using archive_type = std::tuple<
|
||||
std::queue<typename traits_type::entity_type>,
|
||||
std::queue<entt::entity>,
|
||||
std::queue<std::size_t>,
|
||||
std::queue<int>,
|
||||
std::queue<char>,
|
||||
std::queue<double>,
|
||||
@@ -161,7 +160,6 @@ TEST(Snapshot, Partial) {
|
||||
using archive_type = std::tuple<
|
||||
std::queue<typename traits_type::entity_type>,
|
||||
std::queue<entt::entity>,
|
||||
std::queue<std::size_t>,
|
||||
std::queue<int>,
|
||||
std::queue<char>,
|
||||
std::queue<double>>;
|
||||
@@ -226,7 +224,6 @@ TEST(Snapshot, Iterator) {
|
||||
using archive_type = std::tuple<
|
||||
std::queue<typename traits_type::entity_type>,
|
||||
std::queue<entt::entity>,
|
||||
std::queue<std::size_t>,
|
||||
std::queue<another_component>,
|
||||
std::queue<int>>;
|
||||
|
||||
@@ -262,7 +259,6 @@ TEST(Snapshot, Continuous) {
|
||||
using archive_type = std::tuple<
|
||||
std::queue<typename traits_type::entity_type>,
|
||||
std::queue<entt::entity>,
|
||||
std::queue<std::size_t>,
|
||||
std::queue<another_component>,
|
||||
std::queue<what_a_component>,
|
||||
std::queue<map_component>,
|
||||
@@ -501,8 +497,7 @@ TEST(Snapshot, MoreOnShrink) {
|
||||
|
||||
using archive_type = std::tuple<
|
||||
std::queue<typename traits_type::entity_type>,
|
||||
std::queue<entt::entity>,
|
||||
std::queue<std::size_t>>;
|
||||
std::queue<entt::entity>>;
|
||||
|
||||
archive_type storage;
|
||||
output_archive<archive_type> output{storage};
|
||||
@@ -530,7 +525,6 @@ TEST(Snapshot, SyncDataMembers) {
|
||||
using archive_type = std::tuple<
|
||||
std::queue<typename traits_type::entity_type>,
|
||||
std::queue<entt::entity>,
|
||||
std::queue<std::size_t>,
|
||||
std::queue<what_a_component>,
|
||||
std::queue<map_component>>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user