#pragma once #include "CDTable.h" struct CDRailActivatorComponent { int32_t id; std::u16string startAnimation; std::u16string loopAnimation; std::u16string stopAnimation; std::u16string startSound; std::u16string loopSound; std::u16string stopSound; std::pair startEffectID; std::pair loopEffectID; std::pair stopEffectID; std::string preconditions; bool playerCollision; bool cameraLocked; bool damageImmune; bool noAggro; bool showNameBillboard; }; class CDRailActivatorComponentTable : public CDTable { public: CDRailActivatorComponentTable(); ~CDRailActivatorComponentTable(); std::string GetName() const override; [[nodiscard]] CDRailActivatorComponent GetEntryByID(int32_t id) const; [[nodiscard]] std::vector GetEntries() const; private: static std::pair EffectPairFromString(std::string& str); std::vector m_Entries{}; };