diff options
Diffstat (limited to 'src/sprite.cpp')
-rw-r--r-- | src/sprite.cpp | 16 |
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; +} |