1 #pragma once 2 3 #include "util.h" 4 5 class Position; 6 class Furniture; 7 8 class FurnitureDroppedItems { 9 public: 10 struct Water { 11 string SERIAL(verbSingle); 12 string SERIAL(verbPlural); 13 optional<string> SERIAL(unseenMessage); 14 SERIALIZE_ALL(verbSingle, verbPlural, unseenMessage) 15 }; 16 using DropData = variant<Water>; 17 template <typename T> FurnitureDroppedItems(const T & t)18 FurnitureDroppedItems(const T& t) : FurnitureDroppedItems(DropData(t)) {} 19 FurnitureDroppedItems(DropData); 20 vector<PItem> handle(Position, WConstFurniture, vector<PItem>) const; 21 22 SERIALIZATION_DECL(FurnitureDroppedItems) 23 24 private: 25 DropData SERIAL(dropData); 26 }; 27