summaryrefslogtreecommitdiff
path: root/src/sprite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sprite.cpp')
-rw-r--r--src/sprite.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/sprite.cpp b/src/sprite.cpp
index 2e453941a..4e41be4f1 100644
--- a/src/sprite.cpp
+++ b/src/sprite.cpp
@@ -14,6 +14,8 @@
#include "viewport_func.h"
#include "landscape.h"
#include "spritecache.h"
+#include "core/alloc_func.hpp"
+#include "core/mem_func.hpp"
/**
@@ -108,3 +110,17 @@ void DrawCommonTileSeqInGUI(int x, int y, const DrawTileSprites *dts, int32 orig
}
}
}
+
+/** Create a copy of an existing DrawTileSeqStruct array. */
+const DrawTileSeqStruct *CopyDrawTileSeqStruct(const DrawTileSeqStruct *dtss)
+{
+ const DrawTileSeqStruct *element;
+
+ size_t count = 1; // 1 for the terminator
+ foreach_draw_tile_seq(element, dtss) count++;
+
+ DrawTileSeqStruct *copy = MallocT<DrawTileSeqStruct>(count);
+ MemCpyT(copy, dtss, count);
+
+ return copy;
+}