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