mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-21 21:17:49 +02:00
spell icon
This commit is contained in:
parent
b89fa254fc
commit
096036dc9f
@ -18,6 +18,7 @@
|
||||
#include "../windows/GUIClasses.h"
|
||||
#include "../render/Canvas.h"
|
||||
#include "../render/Colors.h"
|
||||
#include "../render/IRenderHandler.h"
|
||||
#include "../CPlayerInterface.h"
|
||||
#include "../CGameInfo.h"
|
||||
|
||||
@ -25,6 +26,7 @@
|
||||
#include "../../lib/CGeneralTextHandler.h"
|
||||
#include "../../lib/ArtifactUtils.h"
|
||||
#include "../../lib/mapObjects/CGHeroInstance.h"
|
||||
#include "../../lib/CConfigHandler.h"
|
||||
|
||||
void CArtPlace::setInternals(const CArtifactInstance * artInst)
|
||||
{
|
||||
@ -33,12 +35,12 @@ void CArtPlace::setInternals(const CArtifactInstance * artInst)
|
||||
if(!artInst)
|
||||
{
|
||||
image->disable();
|
||||
imageSpell->disable();
|
||||
text.clear();
|
||||
hoverText = CGI->generaltexth->allTexts[507];
|
||||
return;
|
||||
}
|
||||
image->enable();
|
||||
image->setFrame(artInst->artType->getIconIndex());
|
||||
|
||||
if(artInst->getTypeId() == ArtifactID::SPELL_SCROLL)
|
||||
{
|
||||
auto spellID = artInst->getScrollSpellID();
|
||||
@ -48,14 +50,31 @@ void CArtPlace::setInternals(const CArtifactInstance * artInst)
|
||||
baseType = CComponent::spell;
|
||||
type = spellID;
|
||||
bonusValue = 0;
|
||||
|
||||
if(!settings["general"]["enableUiEnhancements"].Bool())
|
||||
{
|
||||
image->enable();
|
||||
imageSpell->disable();
|
||||
image->setFrame(artInst->artType->getIconIndex());
|
||||
}
|
||||
else
|
||||
{
|
||||
imageSpell->enable();
|
||||
image->disable();
|
||||
imageSpell->setFrame(spellID.num);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
image->enable();
|
||||
imageSpell->disable();
|
||||
image->setFrame(artInst->artType->getIconIndex());
|
||||
baseType = CComponent::artifact;
|
||||
type = artInst->getTypeId();
|
||||
bonusValue = 0;
|
||||
}
|
||||
|
||||
text = artInst->getDescription();
|
||||
}
|
||||
|
||||
@ -247,9 +266,13 @@ void CHeroArtPlace::createImage()
|
||||
else if(ourArt)
|
||||
imageIndex = ourArt->artType->getIconIndex();
|
||||
|
||||
imageSpell = std::make_shared<CAnimImage>(GH.renderHandler().loadAnimation(AnimationPath::builtin("spellscr")), 0, Rect(0, 5, 44, 34));
|
||||
image = std::make_shared<CAnimImage>(AnimationPath::builtin("artifact"), imageIndex);
|
||||
if(!ourArt)
|
||||
{
|
||||
image->disable();
|
||||
imageSpell->disable();
|
||||
}
|
||||
|
||||
selection = std::make_shared<CAnimImage>(AnimationPath::builtin("artifact"), ArtifactID::ART_SELECTION);
|
||||
selection->disable();
|
||||
|
@ -34,6 +34,7 @@ class CArtPlace : public LRClickableAreaWTextComp
|
||||
{
|
||||
protected:
|
||||
std::shared_ptr<CAnimImage> image;
|
||||
std::shared_ptr<CAnimImage> imageSpell;
|
||||
const CArtifactInstance * ourArt;
|
||||
|
||||
void setInternals(const CArtifactInstance * artInst);
|
||||
|
@ -14,6 +14,10 @@
|
||||
#include "../gui/CursorHandler.h"
|
||||
#include "../gui/WindowHandler.h"
|
||||
|
||||
#include "../render/IRenderHandler.h"
|
||||
#include "../render/CAnimation.h"
|
||||
#include "../render/IImage.h"
|
||||
|
||||
#include "CComponent.h"
|
||||
|
||||
#include "../windows/CHeroWindow.h"
|
||||
@ -270,7 +274,16 @@ void CWindowWithArtifacts::artifactMoved(const ArtifactLocation & srcLoc, const
|
||||
if(pickedArtInst)
|
||||
{
|
||||
markPossibleSlots();
|
||||
CCS->curh->dragAndDropCursor(AnimationPath::builtin("artifact"), pickedArtInst->artType->getIconIndex());
|
||||
|
||||
if(pickedArtInst->getTypeId() == ArtifactID::SPELL_SCROLL && pickedArtInst->getScrollSpellID().num >= 0 && settings["general"]["enableUiEnhancements"].Bool())
|
||||
{
|
||||
auto anim = GH.renderHandler().loadAnimation(AnimationPath::builtin("spellscr"));
|
||||
anim->load(pickedArtInst->getScrollSpellID().num);
|
||||
std::shared_ptr<IImage> img = anim->getImage(pickedArtInst->getScrollSpellID().num);
|
||||
CCS->curh->dragAndDropCursor(img->scaleFast(Point(44, 34)));
|
||||
}
|
||||
else
|
||||
CCS->curh->dragAndDropCursor(AnimationPath::builtin("artifact"), pickedArtInst->artType->getIconIndex());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user