#pragma once #include "dCommonVars.h" #include "Entity.h" #include struct VanityNPCLocation { float m_Chance = 1.0f; NiPoint3 m_Position; NiQuaternion m_Rotation; }; struct VanityNPC { std::string m_Name; LOT m_LOT; std::vector m_Equipment; std::vector m_Phrases; std::string m_Script; std::map m_Flags; std::map> m_Locations; }; struct VanityParty { uint32_t m_Zone; float m_Chance = 1.0f; std::vector m_Locations; }; class VanityUtilities { public: static void SpawnVanity(); static Entity* SpawnNPC( LOT lot, const std::string& name, const NiPoint3& position, const NiQuaternion& rotation, const std::vector& inventory, const std::vector& ldf ); static std::string ParseMarkdown( const std::string& file ); static void ParseXML( const std::string& file ); static VanityNPC* GetNPC(const std::string& name); private: static void SetupNPCTalk(Entity* npc); static void NPCTalk(Entity* npc); static std::vector m_NPCs; static std::vector m_Parties; static std::vector m_PartyPhrases; };