XEEN: Fix build warning by adding SpriteResource copy constructor

This commit is contained in:
Jonathan Phénix
2020-11-21 20:14:52 -08:00
committed by Paul Gilbert
parent 557c3cecfc
commit 2e30aa882c
2 changed files with 18 additions and 8 deletions
+12 -7
View File
@@ -40,29 +40,27 @@ int SpriteResource::_clippedBottom;
SpriteResource::SpriteResource() {
_filesize = 0;
_data = nullptr;
_scaledWidth = _scaledHeight = 0;
}
SpriteResource::SpriteResource(const Common::String &filename) {
_data = nullptr;
_scaledWidth = _scaledHeight = 0;
load(filename);
}
SpriteResource::SpriteResource(const Common::String &filename, int ccMode) {
_data = nullptr;
_scaledWidth = _scaledHeight = 0;
load(filename, ccMode);
}
SpriteResource::SpriteResource(const SpriteResource &src) {
copy(src);
}
SpriteResource::~SpriteResource() {
clear();
}
SpriteResource &SpriteResource::operator=(const SpriteResource &src) {
delete[] _data;
_index.clear();
void SpriteResource::copy(const SpriteResource &src) {
_filesize = src._filesize;
_data = new byte[_filesize];
Common::copy(src._data, src._data + _filesize, _data);
@@ -70,6 +68,13 @@ SpriteResource &SpriteResource::operator=(const SpriteResource &src) {
_index.resize(src._index.size());
for (uint i = 0; i < src._index.size(); ++i)
_index[i] = src._index[i];
}
SpriteResource &SpriteResource::operator=(const SpriteResource &src) {
delete[] _data;
_index.clear();
copy(src);
return *this;
}
+6 -1
View File
@@ -54,7 +54,6 @@ private:
Common::Array<IndexEntry> _index;
size_t _filesize;
byte *_data;
int _scaledWidth, _scaledHeight;
Common::String _filename;
static int _clippedBottom;
@@ -74,10 +73,16 @@ private:
*/
void draw(int windowNum, int frame, const Common::Point &destPos,
const Common::Rect &bounds, uint flags = 0, int scale = 0);
/**
* Deep copy assuming that the current instance is clean
*/
void copy(const SpriteResource &src);
public:
SpriteResource();
SpriteResource(const Common::String &filename);
SpriteResource(const Common::String &filename, int ccMode);
SpriteResource(const SpriteResource &src);
virtual ~SpriteResource();