 |
Crossfire Resources Editor
|
Go to the documentation of this file.
15 #include "../ResourcesManager.h"
17 #include "AssetsManager.h"
26 :
AssetWithArtifacts<treasure>(parent,
"Treasure", tr, resources), myNextYes(nullptr), myNextNo(nullptr)
55 if (tlw && tlw->totalChance() != 0) {
56 name = tr(
"%1 (%2%3%, %4 chances on %5)")
59 .arg(qRound((
float)100 *
myWrappedItem->chance / tlw->totalChance()))
61 .arg(tlw->totalChance());
63 name = tr(
"%1 (%2%3%)")
80 auto tl = getManager()->treasures()->find(
myWrappedItem->name);
159 (*ti) = get_empty_treasure();
163 (*ti)->name = add_string(tl->name);
187 for (
auto arch : archs) {
192 for (
auto list : lists) {
290 if (!art.isEmpty()) {
291 myWrappedItem->artifact = add_string(art.toLocal8Bit().data());
301 menu->addSeparator();
304 connect(menu->addAction(tr(
"Delete")), &QAction::triggered, [
this] () {
myParent->
removeChild(
this); });
346 connect(menu->addAction(tr(
"Delete")), &QAction::triggered, [
this] () {
myParent->
removeChild(
this); });
static const char * Archetype
void setIsYes(bool isYes)
TreasureWrapper(AssetWrapper *parent, treasure *tr, ResourcesManager *resources)
virtual bool canDrop(const QMimeData *data, int row) const override
void addChild(treasurelist *tl, archetype *arch)
virtual int childrenCount() const override
void setList(const treasurelist *list)
Class managing all assets, tracking in which file they are, which are modified, and such.
ArchetypeWrapper * wrap(archetype *arch, AssetWrapper *parent)
void setMagic(uint8_t magic)
void setSpecificItem(const object *item, bool notify)
static QIcon getTreasureIcon()
virtual void removeChild(AssetWrapper *)
static QIcon getIcon(uint16_t faceNumber)
virtual AssetWrapper * child(int child) override
void setChance(uint8_t chance)
virtual void removeChild(AssetWrapper *child) override
TreasureYesNo(TreasureWrapper *parent, treasure *tr, ResourcesManager *resources, bool isYes)
virtual QIcon displayIcon() const override
static const char * TreasureList
virtual void drop(const QMimeData *data, int row) override
void doRemoveChild(TreasureYesNo **tr, treasure **ti, int index)
Wrapper for a treasure item.
virtual int childrenCount() const override
virtual void fillMenu(QMenu *menu) override
Base class for all assets that can be displayed or edited by CRE.
ResourcesManager * myResources
virtual void fillMenu(QMenu *)
virtual PossibleUse uses(const AssetWrapper *asset, std::string &) const override
treasure * wrappedItem() const
static QList< T * > extract(const QMimeData *data, const QString &mime, AssetsCollection< T > *assets)
virtual int childIndex(AssetWrapper *child) override
TreasureYesNo * myNextYes
virtual AssetWrapper * child(int child) override
void setArtifact(const QString &art)
void remove(treasure *tr)
void setListMagicAdjustment(qint8 value)
void setListMagicValue(quint8 value)
static QIcon getTreasureOneIcon()
virtual int childIndex(AssetWrapper *child) override
void setArch(const archetype *arch)
virtual ~TreasureWrapper()
void markModified(ChangeType change, int extra=0)
Represents an asset to which artifacts may be applied.
virtual void fillMenu(QMenu *menu) override
quint8 listMagicValue() const
void setNrof(uint16_t nrof)
qint8 listMagicAdjustment() const
virtual QString displayName() const override
AssetWrapper * displayParent() const
void doAddChild(TreasureYesNo **my, treasure **ti, bool isYes, int index, treasurelist *tl, archetype *arch)