From e9d9da34e86a1e5f0de155bf9086d3e5ff6b2da0 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 7 Aug 2025 13:34:42 -0400 Subject: Protobuf works! Parsing connections --- tools/datapacker/container.h | 65 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 tools/datapacker/container.h (limited to 'tools/datapacker/container.h') diff --git a/tools/datapacker/container.h b/tools/datapacker/container.h new file mode 100644 index 0000000..96e5a50 --- /dev/null +++ b/tools/datapacker/container.h @@ -0,0 +1,65 @@ +#ifndef TOOLS_DATAPACKER_CONTAINER_H_ +#define TOOLS_DATAPACKER_CONTAINER_H_ + +#include +#include +#include +#include + +#include "proto/data.pb.h" + +namespace com::fourisland::lingo2_archipelago { + +class Container { + public: + uint64_t FindOrAddMap(std::string map_name); + + uint64_t FindOrAddRoom(std::optional map_name, + std::string room_name, + std::optional map_fallback); + + uint64_t FindOrAddPainting(std::optional map_name, + std::optional room_name, + std::string painting_name, + std::optional map_fallback, + std::optional room_fallback); + + uint64_t FindOrAddPort(std::optional map_name, + std::optional room_name, + std::string port_name, + std::optional map_fallback, + std::optional room_fallback); + + uint64_t FindOrAddPanel(std::optional map_name, + std::optional room_name, + std::string panel_name, + std::optional map_fallback, + std::optional room_fallback); + + uint64_t FindOrAddDoor(std::optional map_name, + std::string door_name, + std::optional map_fallback); + + void AddConnection(const Connection& connection); + + const AllObjects& all_objects() const { return all_objects_; } + + private: + AllObjects all_objects_; + + std::map map_id_by_name_; + std::map> + room_id_by_map_room_names_; + std::map>> + painting_id_by_map_room_painting_names_; + std::map>> + port_id_by_map_room_port_names_; + std::map>> + panel_id_by_map_room_panel_names_; + std::map> + door_id_by_map_door_names_; +}; + +} // namespace com::fourisland::lingo2_archipelago + +#endif /* TOOLS_DATAPACKER_CONTAINER_H_ */ -- cgit 1.4.1