From 0f64a06317df182ab0ff4a0ae9fbe1aad880dcc0 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Tue, 17 Jan 2017 18:21:23 +0300
Subject: Add missing A_DEFAULT_COPY / A_DELETE_COPY into resources.

---
 src/resources/animation/animation.h           |  2 ++
 src/resources/basicstat.h                     |  2 ++
 src/resources/beingmenuitem.h                 |  5 ++++-
 src/resources/beingslot.h                     |  2 ++
 src/resources/cursors.h                       |  2 ++
 src/resources/db/colordb.h                    |  2 ++
 src/resources/delayedmanager.h                |  5 +++++
 src/resources/dye/dyecolor.h                  |  2 ++
 src/resources/effectdescription.h             |  7 +++++--
 src/resources/equipmentslots.h                |  7 +++++++
 src/resources/fboinfo.h                       |  6 +++++-
 src/resources/frame.h                         |  2 ++
 src/resources/imagewriter.h                   |  5 +++++
 src/resources/inventory/inventory.cpp         |  2 ++
 src/resources/item/cardslist.h                |  2 ++
 src/resources/itemtypemap.h                   |  2 ++
 src/resources/loaders/atlasloader.cpp         |  2 ++
 src/resources/loaders/emptyatlasloader.cpp    |  2 ++
 src/resources/loaders/imageloader.cpp         |  2 ++
 src/resources/loaders/imagesetloader.cpp      |  3 +++
 src/resources/loaders/musicloader.cpp         |  2 ++
 src/resources/loaders/rescaledloader.cpp      |  2 ++
 src/resources/loaders/shaderloader.cpp        |  2 ++
 src/resources/loaders/shaderprogramloader.cpp |  2 ++
 src/resources/loaders/soundloader.cpp         |  2 ++
 src/resources/loaders/spritedefloader.cpp     |  2 ++
 src/resources/loaders/subimageloader.cpp      |  2 ++
 src/resources/loaders/subimagesetloader.cpp   |  2 ++
 src/resources/loaders/walklayerloader.cpp     |  2 ++
 src/resources/loaders/xmlloader.cpp           |  2 ++
 src/resources/map/location.h                  | 10 ++++++++--
 src/resources/map/map.cpp                     |  5 ++++-
 src/resources/map/map.h                       |  2 ++
 src/resources/map/mapobject.h                 |  8 ++++++--
 src/resources/map/properties.h                |  2 ++
 src/resources/map/tileinfo.h                  |  2 ++
 src/resources/mapinfo.h                       |  2 ++
 src/resources/mapreader.h                     |  2 ++
 src/resources/memorycounter.h                 |  2 ++
 src/resources/npcbuttoninfo.h                 |  2 ++
 src/resources/npcdialoginfo.h                 |  2 ++
 src/resources/npcdialogmenuinfo.h             |  2 ++
 src/resources/npcimageinfo.h                  |  2 ++
 src/resources/npcinventoryinfo.h              |  2 ++
 src/resources/npctextinfo.h                   |  2 ++
 src/resources/questeffect.h                   |  2 ++
 src/resources/questitem.h                     |  2 ++
 src/resources/questitemtext.h                 |  2 ++
 src/resources/questvar.h                      |  2 ++
 src/resources/rect/doublerect.h               |  2 ++
 src/resources/skill/skilltypeentry.h          |  2 ++
 src/resources/soundinfo.h                     |  5 ++++-
 src/resources/sprite/sprite.h                 |  2 ++
 src/resources/sprite/spritedisplay.h          |  2 ++
 src/resources/updatefile.h                    |  3 +++
 src/resources/wallpaper.h                     |  2 ++
 src/resources/wallpaperdata.h                 |  3 +++
 57 files changed, 150 insertions(+), 10 deletions(-)

diff --git a/src/resources/animation/animation.h b/src/resources/animation/animation.h
index 96771e82a..1a493c62e 100644
--- a/src/resources/animation/animation.h
+++ b/src/resources/animation/animation.h
@@ -47,6 +47,8 @@ class Animation final : public MemoryCounter
 
         explicit Animation(const std::string &name) noexcept2;
 
+        A_DEFAULT_COPY(Animation)
+
         /**
          * Appends a new animation at the end of the sequence.
          */
diff --git a/src/resources/basicstat.h b/src/resources/basicstat.h
index ea53022a0..7da925b92 100644
--- a/src/resources/basicstat.h
+++ b/src/resources/basicstat.h
@@ -39,6 +39,8 @@ struct BasicStat final
         attr(attr0)
     {}
 
+    A_DEFAULT_COPY(BasicStat)
+
     std::string tag;
     std::string name;
     AttributesT attr;
diff --git a/src/resources/beingmenuitem.h b/src/resources/beingmenuitem.h
index 270e6f6ac..2dfd23752 100644
--- a/src/resources/beingmenuitem.h
+++ b/src/resources/beingmenuitem.h
@@ -27,12 +27,15 @@
 
 struct BeingMenuItem final
 {
-    BeingMenuItem(const std::string &name0, const std::string &command0) :
+    BeingMenuItem(const std::string &name0,
+                  const std::string &command0) :
         name(name0),
         command(command0)
     {
     }
 
+    A_DEFAULT_COPY(BeingMenuItem)
+
     std::string name;
     std::string command;
 };
diff --git a/src/resources/beingslot.h b/src/resources/beingslot.h
index 0c3f8a50c..eb8a1f5f4 100644
--- a/src/resources/beingslot.h
+++ b/src/resources/beingslot.h
@@ -39,6 +39,8 @@ struct BeingSlot final
     {
     }
 
+    A_DEFAULT_COPY(BeingSlot)
+
     int spriteId;
     CardsList cardsId;
     ItemColor colorId;
diff --git a/src/resources/cursors.h b/src/resources/cursors.h
index 5f4bb66b1..3a82b1a10 100644
--- a/src/resources/cursors.h
+++ b/src/resources/cursors.h
@@ -31,6 +31,8 @@ namespace Cursors
 {
     struct StrToCursor final
     {
+        A_DELETE_COPY(StrToCursor)
+
         std::string str;
         CursorT cursor;
     };
diff --git a/src/resources/db/colordb.h b/src/resources/db/colordb.h
index 09bf70645..d4e0ecb29 100644
--- a/src/resources/db/colordb.h
+++ b/src/resources/db/colordb.h
@@ -53,6 +53,8 @@ namespace ColorDB
             {
             }
 
+            A_DEFAULT_COPY(ItemColorData)
+
             ItemColor id;
             std::string name;
             std::string color;
diff --git a/src/resources/delayedmanager.h b/src/resources/delayedmanager.h
index a43a82b5c..085efbbdf 100644
--- a/src/resources/delayedmanager.h
+++ b/src/resources/delayedmanager.h
@@ -36,6 +36,11 @@ typedef DelayedAnim::iterator DelayedAnimIter;
 class DelayedManager final
 {
     public:
+        DelayedManager()
+        { }
+
+        A_DELETE_COPY(DelayedManager)
+
         static void addDelayedAnimation(AnimationDelayLoad *const animation)
         { mDelayedAnimations.push_back(animation); }
 
diff --git a/src/resources/dye/dyecolor.h b/src/resources/dye/dyecolor.h
index 3154802fd..229f9d86b 100644
--- a/src/resources/dye/dyecolor.h
+++ b/src/resources/dye/dyecolor.h
@@ -62,6 +62,8 @@ struct DyeColor final
         value[3] = a;
     }
 
+    A_DEFAULT_COPY(DyeColor)
+
     void update()
     {
         valueA = buildHex(value[0], value[1], value[2], value[3]);
diff --git a/src/resources/effectdescription.h b/src/resources/effectdescription.h
index 17765d114..f5d57d552 100644
--- a/src/resources/effectdescription.h
+++ b/src/resources/effectdescription.h
@@ -29,14 +29,17 @@
 
 struct EffectDescription final
 {
-    EffectDescription(const int id0, const std::string &gfx0,
+    EffectDescription(const int id0,
+                      const std::string &gfx0,
                       const std::string &sfx0,
                       const std::string &sprite0) :
         id(id0),
         gfx(gfx0),
         sfx(sfx0),
         sprite(sprite0)
-        { }
+    { }
+
+    A_DEFAULT_COPY(EffectDescription)
 
     int id;
     std::string gfx;
diff --git a/src/resources/equipmentslots.h b/src/resources/equipmentslots.h
index 27f03ebae..f8b88db03 100644
--- a/src/resources/equipmentslots.h
+++ b/src/resources/equipmentslots.h
@@ -27,6 +27,13 @@
 
 struct EquipmentSlotMap final
 {
+    EquipmentSlotMap() :
+        name(nullptr),
+        id(0)
+    { }
+
+    A_DELETE_COPY(EquipmentSlotMap)
+
     const char *const name;
     const int id;
 };
diff --git a/src/resources/fboinfo.h b/src/resources/fboinfo.h
index ca1dc3ed5..e92659156 100644
--- a/src/resources/fboinfo.h
+++ b/src/resources/fboinfo.h
@@ -40,10 +40,14 @@
 struct FBOInfo final
 {
     constexpr2 FBOInfo() :
-        fboId(0), textureId(0), rboId(0)
+        fboId(0),
+        textureId(0),
+        rboId(0)
     {
     }
 
+    A_DELETE_COPY(FBOInfo)
+
     GLuint fboId;
     GLuint textureId;
     GLuint rboId;
diff --git a/src/resources/frame.h b/src/resources/frame.h
index 8dd6ebb6e..f7d6a069c 100644
--- a/src/resources/frame.h
+++ b/src/resources/frame.h
@@ -36,6 +36,8 @@ class Image;
  */
 struct Frame final
 {
+    A_DEFAULT_COPY(Frame)
+
     Image *image;
     int delay;
     int offsetX;
diff --git a/src/resources/imagewriter.h b/src/resources/imagewriter.h
index 0ce6d793b..dbe7c75ff 100644
--- a/src/resources/imagewriter.h
+++ b/src/resources/imagewriter.h
@@ -32,6 +32,11 @@ struct SDL_Surface;
 class ImageWriter final
 {
     public:
+        ImageWriter()
+        { }
+
+        A_DELETE_COPY(ImageWriter)
+
         static bool writePNG(SDL_Surface *const surface,
                              const std::string &filename);
 };
diff --git a/src/resources/inventory/inventory.cpp b/src/resources/inventory/inventory.cpp
index 3421508ad..0f34ea977 100644
--- a/src/resources/inventory/inventory.cpp
+++ b/src/resources/inventory/inventory.cpp
@@ -46,6 +46,8 @@ namespace
 {
     struct SlotUsed final
     {
+        A_DEFAULT_COPY(SlotUsed)
+
         bool operator()(const Item *const item) const
         {
             return item && item->mId >= 0 && item->mQuantity > 0;
diff --git a/src/resources/item/cardslist.h b/src/resources/item/cardslist.h
index 1a6e5977d..f4c488404 100644
--- a/src/resources/item/cardslist.h
+++ b/src/resources/item/cardslist.h
@@ -54,6 +54,8 @@ struct CardsList final
         }
     }
 
+    A_DEFAULT_COPY(CardsList)
+
     bool isEmpty() const noexcept2 A_WARN_UNUSED
     {
         return cards[0] == 0 &&
diff --git a/src/resources/itemtypemap.h b/src/resources/itemtypemap.h
index fd8390e3c..446692245 100644
--- a/src/resources/itemtypemap.h
+++ b/src/resources/itemtypemap.h
@@ -29,6 +29,8 @@
 
 struct ItemTypeMap final
 {
+    A_DELETE_COPY(ItemTypeMap)
+
     std::string name;
     ItemDbTypeT type;
     std::string useButton;
diff --git a/src/resources/loaders/atlasloader.cpp b/src/resources/loaders/atlasloader.cpp
index c95099d0b..ec14f03ff 100644
--- a/src/resources/loaders/atlasloader.cpp
+++ b/src/resources/loaders/atlasloader.cpp
@@ -33,6 +33,8 @@
 
 struct AtlasLoader final
 {
+    A_DELETE_COPY(AtlasLoader)
+
     const std::string name;
     const StringVect *const files;
 
diff --git a/src/resources/loaders/emptyatlasloader.cpp b/src/resources/loaders/emptyatlasloader.cpp
index 410c42051..e3dfa7734 100644
--- a/src/resources/loaders/emptyatlasloader.cpp
+++ b/src/resources/loaders/emptyatlasloader.cpp
@@ -33,6 +33,8 @@
 
 struct EmptyAtlasLoader final
 {
+    A_DELETE_COPY(EmptyAtlasLoader)
+
     const std::string name;
     const StringVect *const files;
 
diff --git a/src/resources/loaders/imageloader.cpp b/src/resources/loaders/imageloader.cpp
index cf8a7ecc8..f1917d5cc 100644
--- a/src/resources/loaders/imageloader.cpp
+++ b/src/resources/loaders/imageloader.cpp
@@ -39,6 +39,8 @@ namespace
 {
     struct DyedImageLoader final
     {
+        A_DELETE_COPY(DyedImageLoader)
+
         std::string path;
         static Resource *load(const void *const v)
         {
diff --git a/src/resources/loaders/imagesetloader.cpp b/src/resources/loaders/imagesetloader.cpp
index cb13d1293..66a380397 100644
--- a/src/resources/loaders/imagesetloader.cpp
+++ b/src/resources/loaders/imagesetloader.cpp
@@ -39,6 +39,9 @@ struct ImageSetLoader final
     const std::string path;
     const int w;
     const int h;
+
+    A_DELETE_COPY(ImageSetLoader)
+
     static Resource *load(const void *const v)
     {
         if (!v)
diff --git a/src/resources/loaders/musicloader.cpp b/src/resources/loaders/musicloader.cpp
index 27b15c1c1..c8f79f7b6 100644
--- a/src/resources/loaders/musicloader.cpp
+++ b/src/resources/loaders/musicloader.cpp
@@ -35,6 +35,8 @@ namespace
 {
     struct ResourceLoader final
     {
+        A_DELETE_COPY(ResourceLoader)
+
         const std::string path;
 
         static Resource *load(const void *const v)
diff --git a/src/resources/loaders/rescaledloader.cpp b/src/resources/loaders/rescaledloader.cpp
index 9bf2272b5..4f4c9b7b0 100644
--- a/src/resources/loaders/rescaledloader.cpp
+++ b/src/resources/loaders/rescaledloader.cpp
@@ -35,6 +35,8 @@ namespace
 {
     struct RescaledLoader final
     {
+        A_DELETE_COPY(RescaledLoader)
+
         const Image *const image;
         const int width;
         const int height;
diff --git a/src/resources/loaders/shaderloader.cpp b/src/resources/loaders/shaderloader.cpp
index 7c5edcb19..291201684 100644
--- a/src/resources/loaders/shaderloader.cpp
+++ b/src/resources/loaders/shaderloader.cpp
@@ -37,6 +37,8 @@ namespace
 {
     struct ShaderLoader final
     {
+        A_DELETE_COPY(ShaderLoader)
+
         const std::string name;
         const unsigned int type;
 
diff --git a/src/resources/loaders/shaderprogramloader.cpp b/src/resources/loaders/shaderprogramloader.cpp
index 626d5f93a..682f89d6c 100644
--- a/src/resources/loaders/shaderprogramloader.cpp
+++ b/src/resources/loaders/shaderprogramloader.cpp
@@ -37,6 +37,8 @@ namespace
 {
     struct ShaderProgramLoader final
     {
+        A_DELETE_COPY(ShaderProgramLoader)
+
         const std::string vertex;
         const std::string fragment;
         const bool isNewShader;
diff --git a/src/resources/loaders/soundloader.cpp b/src/resources/loaders/soundloader.cpp
index 2ed5e526f..0eb7f0200 100644
--- a/src/resources/loaders/soundloader.cpp
+++ b/src/resources/loaders/soundloader.cpp
@@ -35,6 +35,8 @@ namespace
 {
     struct ResourceLoader final
     {
+        A_DELETE_COPY(ResourceLoader)
+
         const std::string path;
 
         static Resource *load(const void *const v)
diff --git a/src/resources/loaders/spritedefloader.cpp b/src/resources/loaders/spritedefloader.cpp
index 3e9d48155..ef37d2315 100644
--- a/src/resources/loaders/spritedefloader.cpp
+++ b/src/resources/loaders/spritedefloader.cpp
@@ -36,6 +36,8 @@ namespace
 {
     struct SpriteDefLoader final
     {
+        A_DELETE_COPY(SpriteDefLoader)
+
         const std::string path;
         const int variant;
         static Resource *load(const void *const v)
diff --git a/src/resources/loaders/subimageloader.cpp b/src/resources/loaders/subimageloader.cpp
index 18ba3d7d5..ce9177995 100644
--- a/src/resources/loaders/subimageloader.cpp
+++ b/src/resources/loaders/subimageloader.cpp
@@ -35,6 +35,8 @@ namespace
 {
     struct SubImageLoader final
     {
+        A_DELETE_COPY(SubImageLoader)
+
         Image *const parent;
         const int x;
         const int y;
diff --git a/src/resources/loaders/subimagesetloader.cpp b/src/resources/loaders/subimagesetloader.cpp
index 5be38fa80..1dcaffcc8 100644
--- a/src/resources/loaders/subimagesetloader.cpp
+++ b/src/resources/loaders/subimagesetloader.cpp
@@ -36,6 +36,8 @@ namespace
 {
     struct SubImageSetLoader final
     {
+        A_DELETE_COPY(SubImageSetLoader)
+
         Image *const parent;
         int width;
         int height;
diff --git a/src/resources/loaders/walklayerloader.cpp b/src/resources/loaders/walklayerloader.cpp
index 4e76d9fe7..4fbac1010 100644
--- a/src/resources/loaders/walklayerloader.cpp
+++ b/src/resources/loaders/walklayerloader.cpp
@@ -35,6 +35,8 @@
 #ifndef DYECMD
 struct WalkLayerLoader final
 {
+    A_DELETE_COPY(WalkLayerLoader)
+
     const std::string name;
     const Map *const map;
 
diff --git a/src/resources/loaders/xmlloader.cpp b/src/resources/loaders/xmlloader.cpp
index baeef118c..31e61df6d 100644
--- a/src/resources/loaders/xmlloader.cpp
+++ b/src/resources/loaders/xmlloader.cpp
@@ -32,6 +32,8 @@ namespace
 {
     struct ResourceLoader final
     {
+        A_DELETE_COPY(ResourceLoader)
+
         const std::string path;
         const UseResman useResman;
         const SkipError skipError;
diff --git a/src/resources/map/location.h b/src/resources/map/location.h
index c598c98f4..44d2619a7 100644
--- a/src/resources/map/location.h
+++ b/src/resources/map/location.h
@@ -35,10 +35,16 @@ struct Location final
     /**
      * Constructor.
      */
-    Location(const int px, const int py, MetaTile *const ptile) :
-        x(px), y(py), tile(ptile)
+    Location(const int px,
+             const int py,
+             MetaTile *const ptile) :
+        x(px),
+        y(py),
+        tile(ptile)
     {}
 
+    A_DEFAULT_COPY(Location)
+
     /**
      * Comparison operator.
      */
diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp
index 6070a137b..5cd8affb9 100644
--- a/src/resources/map/map.cpp
+++ b/src/resources/map/map.cpp
@@ -77,7 +77,10 @@
 class ActorFunctuator final
 {
     public:
-        bool operator()(const Actor *const a, const Actor *const b) const
+        A_DEFAULT_COPY(ActorFunctuator)
+
+        bool operator()(const Actor *const a,
+                        const Actor *const b) const
         {
             if (!a || !b)
                 return false;
diff --git a/src/resources/map/map.h b/src/resources/map/map.h
index d9811d8b9..1d5ccefdc 100644
--- a/src/resources/map/map.h
+++ b/src/resources/map/map.h
@@ -442,6 +442,8 @@ class Map final : public Properties,
             {
             }
 
+            A_DEFAULT_COPY(ParticleEffectData)
+
             const2 std::string file;
             const2 int x;
             const2 int y;
diff --git a/src/resources/map/mapobject.h b/src/resources/map/mapobject.h
index d76dcd2e9..07b25d3ec 100644
--- a/src/resources/map/mapobject.h
+++ b/src/resources/map/mapobject.h
@@ -30,11 +30,15 @@
 class MapObject final
 {
     public:
-        MapObject(const int type0, const std::string &data0) :
-            type(type0), data(data0)
+        MapObject(const int type0,
+                  const std::string &data0) :
+            type(type0),
+            data(data0)
         {
         }
 
+        A_DEFAULT_COPY(MapObject)
+
         int type;
         std::string data;
 };
diff --git a/src/resources/map/properties.h b/src/resources/map/properties.h
index 54c7b17e5..31d8cfe77 100644
--- a/src/resources/map/properties.h
+++ b/src/resources/map/properties.h
@@ -39,6 +39,8 @@ class Properties notfinal
         {
         }
 
+        A_DELETE_COPY(Properties)
+
         /**
          * Destructor.
          */
diff --git a/src/resources/map/tileinfo.h b/src/resources/map/tileinfo.h
index b26175ca9..bb92be4fc 100644
--- a/src/resources/map/tileinfo.h
+++ b/src/resources/map/tileinfo.h
@@ -36,6 +36,8 @@ struct TileInfo final
     {
     }
 
+    A_DELETE_COPY(TileInfo)
+
     /* tile image */
     Image *image;
     /* repeated tile width in pixels */
diff --git a/src/resources/mapinfo.h b/src/resources/mapinfo.h
index c23621e2d..13abbed1b 100644
--- a/src/resources/mapinfo.h
+++ b/src/resources/mapinfo.h
@@ -34,6 +34,8 @@ struct MapInfo final
     {
     }
 
+    A_DELETE_COPY(MapInfo)
+
     std::string atlas;
     const StringVect *files;
 };
diff --git a/src/resources/mapreader.h b/src/resources/mapreader.h
index b3802d7ca..30ce41c93 100644
--- a/src/resources/mapreader.h
+++ b/src/resources/mapreader.h
@@ -40,6 +40,8 @@ class Tileset;
 class MapReader final
 {
     public:
+        A_DELETE_COPY(MapReader)
+
         /**
          * Read an XML map from a file.
          */
diff --git a/src/resources/memorycounter.h b/src/resources/memorycounter.h
index 7f1435ef8..ea79ee607 100644
--- a/src/resources/memorycounter.h
+++ b/src/resources/memorycounter.h
@@ -30,6 +30,8 @@ class MemoryCounter notfinal
     public:
         MemoryCounter();
 
+        A_DEFAULT_COPY(MemoryCounter)
+
 PRAGMACLANG(GCC diagnostic push)
 PRAGMACLANG(GCC diagnostic ignored "-Wdeprecated")
         virtual ~MemoryCounter()
diff --git a/src/resources/npcbuttoninfo.h b/src/resources/npcbuttoninfo.h
index bb1c85361..6d0b92d77 100644
--- a/src/resources/npcbuttoninfo.h
+++ b/src/resources/npcbuttoninfo.h
@@ -38,6 +38,8 @@ struct NpcButtonInfo final
     {
     }
 
+    A_DELETE_COPY(NpcButtonInfo)
+
     std::string name;
     std::string value;
     std::string image;
diff --git a/src/resources/npcdialoginfo.h b/src/resources/npcdialoginfo.h
index f814915d6..9d0ae85b8 100644
--- a/src/resources/npcdialoginfo.h
+++ b/src/resources/npcdialoginfo.h
@@ -36,6 +36,8 @@ struct NpcDialogInfo final
     {
     }
 
+    A_DELETE_COPY(NpcDialogInfo)
+
     NpcDialogMenuInfo menu;
     NpcInventoryInfo inventory;
     std::string name;
diff --git a/src/resources/npcdialogmenuinfo.h b/src/resources/npcdialogmenuinfo.h
index 3f3405569..a90d1aea0 100644
--- a/src/resources/npcdialogmenuinfo.h
+++ b/src/resources/npcdialogmenuinfo.h
@@ -38,6 +38,8 @@ struct NpcDialogMenuInfo final
     {
     }
 
+    A_DELETE_COPY(NpcDialogMenuInfo)
+
     std::vector<NpcButtonInfo*> buttons;
     std::vector<NpcImageInfo*> images;
     std::vector<NpcTextInfo*> texts;
diff --git a/src/resources/npcimageinfo.h b/src/resources/npcimageinfo.h
index 96cb5f67d..d2cb27874 100644
--- a/src/resources/npcimageinfo.h
+++ b/src/resources/npcimageinfo.h
@@ -34,6 +34,8 @@ struct NpcImageInfo final
     {
     }
 
+    A_DELETE_COPY(NpcImageInfo)
+
     std::string name;
     int x;
     int y;
diff --git a/src/resources/npcinventoryinfo.h b/src/resources/npcinventoryinfo.h
index 61b81a75f..93061abb5 100644
--- a/src/resources/npcinventoryinfo.h
+++ b/src/resources/npcinventoryinfo.h
@@ -33,6 +33,8 @@ struct NpcInventoryInfo final
     {
     }
 
+    A_DELETE_COPY(NpcInventoryInfo)
+
     std::string cell;
     int columns;
 };
diff --git a/src/resources/npctextinfo.h b/src/resources/npctextinfo.h
index 009d7189a..8312d80e0 100644
--- a/src/resources/npctextinfo.h
+++ b/src/resources/npctextinfo.h
@@ -36,6 +36,8 @@ struct NpcTextInfo final
     {
     }
 
+    A_DELETE_COPY(NpcTextInfo)
+
     std::string text;
     int x;
     int y;
diff --git a/src/resources/questeffect.h b/src/resources/questeffect.h
index cb17582f2..60ff0ae78 100644
--- a/src/resources/questeffect.h
+++ b/src/resources/questeffect.h
@@ -39,6 +39,8 @@ struct QuestEffect final
     {
     }
 
+    A_DELETE_COPY(QuestEffect)
+
     std::string map;
     int var;
     BeingTypeId id;
diff --git a/src/resources/questitem.h b/src/resources/questitem.h
index 50a9c8d0c..24cb8be80 100644
--- a/src/resources/questitem.h
+++ b/src/resources/questitem.h
@@ -42,6 +42,8 @@ struct QuestItem final
     {
     }
 
+    A_DELETE_COPY(QuestItem)
+
     int var;
     std::string name;
     std::string group;
diff --git a/src/resources/questitemtext.h b/src/resources/questitemtext.h
index bdb1b92e1..6f7b7d1ee 100644
--- a/src/resources/questitemtext.h
+++ b/src/resources/questitemtext.h
@@ -40,6 +40,8 @@ struct QuestItemText final
     {
     }
 
+    A_DEFAULT_COPY(QuestItemText)
+
     std::string text;
     QuestTypeT type;
     std::string data1;
diff --git a/src/resources/questvar.h b/src/resources/questvar.h
index 82739514b..3895d2783 100644
--- a/src/resources/questvar.h
+++ b/src/resources/questvar.h
@@ -44,6 +44,8 @@ struct QuestVar final
     {
     }
 
+    A_DEFAULT_COPY(QuestVar)
+
     int var1;
     int var2;
     int var3;
diff --git a/src/resources/rect/doublerect.h b/src/resources/rect/doublerect.h
index d7c9cf88c..3919cc8e4 100644
--- a/src/resources/rect/doublerect.h
+++ b/src/resources/rect/doublerect.h
@@ -27,6 +27,8 @@
 
 struct DoubleRect final
 {
+    A_DEFAULT_COPY(DoubleRect)
+
     SDL_Rect src;
     SDL_Rect dst;
 };
diff --git a/src/resources/skill/skilltypeentry.h b/src/resources/skill/skilltypeentry.h
index eb86e60b7..7f85943c0 100644
--- a/src/resources/skill/skilltypeentry.h
+++ b/src/resources/skill/skilltypeentry.h
@@ -27,6 +27,8 @@
 
 struct SkillTypeEntry final
 {
+    A_DELETE_COPY(SkillTypeEntry)
+
     const SkillType::SkillType type;
     const char *const name;
 };
diff --git a/src/resources/soundinfo.h b/src/resources/soundinfo.h
index 5d3a8e26f..6a18b648e 100644
--- a/src/resources/soundinfo.h
+++ b/src/resources/soundinfo.h
@@ -31,12 +31,15 @@
 
 struct SoundInfo final
 {
-    SoundInfo(const std::string &sound0, const int delay0) :
+    SoundInfo(const std::string &sound0,
+              const int delay0) :
         sound(sound0),
         delay(delay0)
     {
     }
 
+    A_DEFAULT_COPY(SoundInfo)
+
     std::string sound;
     int delay;
 };
diff --git a/src/resources/sprite/sprite.h b/src/resources/sprite/sprite.h
index a95a583a9..0b75feb73 100644
--- a/src/resources/sprite/sprite.h
+++ b/src/resources/sprite/sprite.h
@@ -32,6 +32,8 @@ class Image;
 class Sprite notfinal
 {
     public:
+        A_DELETE_COPY(Sprite)
+
         virtual ~Sprite()
         { }
 
diff --git a/src/resources/sprite/spritedisplay.h b/src/resources/sprite/spritedisplay.h
index ae713379b..47b13f2af 100644
--- a/src/resources/sprite/spritedisplay.h
+++ b/src/resources/sprite/spritedisplay.h
@@ -39,6 +39,8 @@ struct SpriteDisplay final
     {
     }
 
+    A_DEFAULT_COPY(SpriteDisplay)
+
     std::string image;
     std::string floor;
     std::vector<SpriteReference*> sprites;
diff --git a/src/resources/updatefile.h b/src/resources/updatefile.h
index 55f91185b..cc162cf79 100644
--- a/src/resources/updatefile.h
+++ b/src/resources/updatefile.h
@@ -39,6 +39,9 @@ struct UpdateFile final
             required(false)
         {
         }
+
+        A_DEFAULT_COPY(UpdateFile)
+
         std::string name;
         std::string hash;
         std::string type;
diff --git a/src/resources/wallpaper.h b/src/resources/wallpaper.h
index f47d4d6ac..5cf84c54b 100644
--- a/src/resources/wallpaper.h
+++ b/src/resources/wallpaper.h
@@ -33,6 +33,8 @@
 class Wallpaper final
 {
     public:
+        A_DELETE_COPY(Wallpaper)
+
         /**
          * Reads the folder that contains wallpapers and organizes the
          * wallpapers found by area, width, and height.
diff --git a/src/resources/wallpaperdata.h b/src/resources/wallpaperdata.h
index 11b617270..417911196 100644
--- a/src/resources/wallpaperdata.h
+++ b/src/resources/wallpaperdata.h
@@ -35,6 +35,9 @@ struct WallpaperData final
         height(0)
     {
     }
+
+    A_DEFAULT_COPY(WallpaperData)
+
     std::string filename;
     int width;
     int height;
-- 
cgit v1.2.3-70-g09d2