#pragma once #include #include #include "SharedTypes.hpp" #include "CoordSpaceHelper.hpp" struct Bookmark { CoordSpaceHelper coords; Vector windowSize; template void serialize(Archive& a) { a(coords, windowSize); } }; class World; class BookmarkManager { public: BookmarkManager(World& w); void init_client_callbacks(); void add_bookmark(const std::string& name); void remove_bookmark(const std::string& name); void jump_to_bookmark(const std::string& name); const std::unordered_map& bookmark_list(); template void save(Archive& a) const { a(bookmarks); } template void load(Archive& a) { a(bookmarks); changed = true; } const std::vector& sorted_names(); private: bool changed = true; std::vector sortedNames; std::unordered_map bookmarks; World& world; };