1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-21 21:17:49 +02:00

spell icon

This commit is contained in:
Laserlicht 2023-09-25 22:58:59 +02:00 committed by GitHub
parent b89fa254fc
commit 096036dc9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 3 deletions

@ -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
{