From a102628a6acaa64ca4b31d588cc9eedbb334d077 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 9 Apr 2016 15:47:25 +0300 Subject: Revert "Improve drawing player sprites performance." This reverts commit 1dfc22f53967ad7e39d42ba8aabe0afa7445476e. --- src/being/being.cpp | 42 +++++++++++++----------------------------- src/being/being.h | 3 --- src/being/compoundsprite.cpp | 4 ---- src/being/compoundsprite.h | 3 --- 4 files changed, 13 insertions(+), 39 deletions(-) (limited to 'src') diff --git a/src/being/being.cpp b/src/being/being.cpp index c20bb4ce1..57529b734 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -202,7 +202,6 @@ Being::Being(const BeingId id, mPets(), mOwner(nullptr), mSpecialParticle(nullptr), - mDrawSprites(), #ifdef EATHENA_SUPPORT mChat(nullptr), mHorseInfo(nullptr), @@ -350,7 +349,6 @@ Being::~Being() } } mPets.clear(); - mDrawSprites.clear(); removeAllItemsParticles(); #ifdef EATHENA_SUPPORT @@ -2581,7 +2579,6 @@ void Being::setSprite(const unsigned int slot, if (beingEquipmentWindow) beingEquipmentWindow->updateBeing(this); } - updateDrawSprites(); } void Being::setSpriteID(const unsigned int slot, @@ -2987,10 +2984,14 @@ void Being::drawPlayerSprites(Graphics *restrict const graphics, const int posX, const int posY) const restrict2 { - const size_t sz = mDrawSprites.size(); - for (size_t f = 0; f < sz; f ++) + const int sz = CompoundSprite::getNumberOfLayers(); + for (int f = 0; f < sz; f ++) { - Sprite *restrict const sprite = mDrawSprites[f]; + const int rSprite = mSpriteHide[mSpriteRemap[f]]; + if (rSprite == 1) + continue; + + Sprite *restrict const sprite = mSprites[mSpriteRemap[f]]; if (sprite) { sprite->setAlpha(mAlpha); @@ -3003,10 +3004,14 @@ void Being::drawSpritesSDL(Graphics *restrict const graphics, const int posX, const int posY) const restrict2 { - const size_t sz = mDrawSprites.size(); + const size_t sz = mSprites.size(); for (size_t f = 0; f < sz; f ++) { - const Sprite *restrict const sprite = mDrawSprites[f]; + const int rSprite = mSpriteHide[mSpriteRemap[f]]; + if (rSprite == 1) + continue; + + const Sprite *restrict const sprite = mSprites[mSpriteRemap[f]]; if (sprite) sprite->draw(graphics, posX, posY); } @@ -3565,7 +3570,6 @@ void Being::recalcSpritesOrder() restrict2 } } } - updateDrawSprites(); } int Being::searchSlotValue(const std::vector &restrict slotRemap, @@ -4403,26 +4407,6 @@ void Being::serverRemove() restrict2 noexcept mTrickDead = false; } -void Being::updateDrawSprites() -{ - if (mType != ActorType::Player) - return; - mDrawSprites.clear(); - const size_t sz = CompoundSprite::getNumberOfLayers(); - for (size_t f = 0; f < sz; f ++) - { - const int rSprite = mSpriteHide[mSpriteRemap[f]]; - if (rSprite == 1) - continue; - - Sprite *const sprite = mSprites[mSpriteRemap[f]]; - if (sprite) - { - mDrawSprites.push_back(sprite); - } - } -} - #ifdef EATHENA_SUPPORT void Being::removeHorse() restrict2 { diff --git a/src/being/being.h b/src/being/being.h index f4c03af37..606db0a35 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -1136,8 +1136,6 @@ class Being notfinal : public ActorSprite, const int offsetX, const int offsetY) const A_NONNULL(2); - void updateDrawSprites() override final; - const ActorTypeT mType; /** Speech Bubble components */ @@ -1162,7 +1160,6 @@ class Being notfinal : public ActorSprite, std::vector mPets; Being *restrict mOwner; Particle *restrict mSpecialParticle; - std::vector mDrawSprites; #ifdef EATHENA_SUPPORT ChatObject *restrict mChat; HorseInfo *restrict mHorseInfo; diff --git a/src/being/compoundsprite.cpp b/src/being/compoundsprite.cpp index 184823011..af2e60d55 100644 --- a/src/being/compoundsprite.cpp +++ b/src/being/compoundsprite.cpp @@ -263,7 +263,6 @@ void CompoundSprite::addSprite(Sprite *const sprite) { mSprites.push_back(sprite); mNeedsRedraw = true; - updateDrawSprites(); } void CompoundSprite::setSprite(const size_t layer, Sprite *const sprite) @@ -275,7 +274,6 @@ void CompoundSprite::setSprite(const size_t layer, Sprite *const sprite) delete mSprites[layer]; mSprites[layer] = sprite; mNeedsRedraw = true; - updateDrawSprites(); } void CompoundSprite::removeSprite(const int layer) @@ -286,7 +284,6 @@ void CompoundSprite::removeSprite(const int layer) delete2(mSprites[layer]); mNeedsRedraw = true; - updateDrawSprites(); } void CompoundSprite::clear() @@ -302,7 +299,6 @@ void CompoundSprite::clear() imagesCache.clear(); delete2(mCacheItem); mLastTime = 0; - updateDrawSprites(); } void CompoundSprite::ensureSize(const size_t layerCount) diff --git a/src/being/compoundsprite.h b/src/being/compoundsprite.h index 96b14d653..71a77e87e 100644 --- a/src/being/compoundsprite.h +++ b/src/being/compoundsprite.h @@ -117,9 +117,6 @@ class CompoundSprite notfinal : public Sprite void initCurrentCacheItem() const; - virtual void updateDrawSprites() - { } - typedef std::list ImagesCache; mutable ImagesCache imagesCache; mutable CompoundItem *mCacheItem; -- cgit v1.2.3-60-g2f50