Fix Sprite::operator=

This commit is contained in:
Pk11
2021-01-14 13:12:10 -06:00
parent f3d001cecf
commit 38b1780d1e
2 changed files with 28 additions and 2 deletions
+2 -1
View File
@@ -44,9 +44,10 @@ public:
Sprite(bool top, SpriteSize size, SpriteColorFormat format, int x = 0, int y = 0, int priority = 0, int id = -1, int paletteAlpha = 15, int rotationIndex = -1, bool doubleSize = false, bool visible = true, bool vFlip = false, bool hFlip = false, bool mosaic = false);
Sprite(const Sprite &sprite);
~Sprite(void);
Sprite &operator=(const Sprite &sprite);
u16* gfx(void) const { return _gfx; }
SpriteSize size(void) const { return _size; }
SpriteColorFormat format(void) const { return _format; }
+26 -1
View File
@@ -101,10 +101,35 @@ Sprite::Sprite(bool top, SpriteSize size, SpriteColorFormat format, int x, int y
Sprite::Sprite(const Sprite &sprite)
: _top(sprite._top), _oam(sprite._oam), _size(sprite._size), _format(sprite._format), _x(sprite._x), _y(sprite._y),
_priority(sprite._priority), _id(sprite._id), _rotationIndex(sprite._rotationIndex),
_paletteAlpha(sprite._paletteAlpha), _visibility(sprite._visibility) {
_paletteAlpha(sprite._paletteAlpha), _width(sprite._width), _height(sprite._height), _rotation(sprite._rotation),
_scaleX(sprite._scaleX), _scaleY(sprite._scaleY), _visibility(sprite._visibility), _gfx(sprite._gfx) {
_assigned[_top][_id]++;
}
Sprite &Sprite::operator=(const Sprite &sprite) {
_top = sprite._top;
_oam = sprite._oam;
_size = sprite._size;
_format = sprite._format;
_x = sprite._x;
_y = sprite._y;
_priority = sprite._priority;
_id = sprite._id;
_rotationIndex = sprite._rotationIndex;
_paletteAlpha = sprite._paletteAlpha;
_width = sprite._width;
_height = sprite._height;
_rotation = sprite._rotation;
_scaleX = sprite._scaleX;
_scaleY = sprite._scaleY;
_visibility = sprite._visibility;
_gfx = sprite._gfx;
_assigned[_top][_id]++;
return *this;
}
Sprite::~Sprite(void) {
_assigned[_top][_id]--;
if(!_assigned[_top][_id]) {