Crossfire Resources Editor
CREMapInformation.h
Go to the documentation of this file.
1 /*
2  * Crossfire -- cooperative multi-player graphical RPG and adventure game
3  *
4  * Copyright (c) 2022 the Crossfire Development Team
5  *
6  * Crossfire is free software and comes with ABSOLUTELY NO WARRANTY. You are
7  * welcome to redistribute it under certain conditions. For details, please
8  * see COPYING and LICENSE.
9  *
10  * The authors can be reached via e-mail at <crossfire@metalforge.org>.
11  */
12 
13 #ifndef CLASS_CRE_MAP_INFORMATION_H
14 #define CLASS_CRE_MAP_INFORMATION_H
15 
16 #include <QObject>
17 #include <QString>
18 #include <QStringList>
19 #include <QDateTime>
20 #include <QHash>
21 #include <QSet>
22 
23 #include "assets/AssetWrapper.h"
24 
25 class RandomMap;
26 
28 {
29  Q_OBJECT
30 
31  Q_PROPERTY(QString path READ path)
32  Q_PROPERTY(QString name READ name)
33  Q_PROPERTY(int difficulty READ difficulty)
35  Q_PROPERTY(qint64 experience READ experience)
36  Q_PROPERTY(QString resetGroup READ resetGroup)
37  Q_PROPERTY(QString backgroundMusic READ backgroundMusic)
38  Q_PROPERTY(double shopGreed READ shopGreed)
39  Q_PROPERTY(QString shopRace READ shopRace)
40  Q_PROPERTY(quint64 shopMin READ shopMin)
41  Q_PROPERTY(quint64 shopMax READ shopMax)
42 
43  public:
45  CREMapInformation(const QString& path);
46  virtual ~CREMapInformation();
47 
48  virtual QString displayName() const override;
49 
50  virtual PossibleUse uses(const AssetWrapper *asset, std::string &) const override;
51 
52  const QString& path() const;
53  void setPath(const QString& path);
54 
55  const QString& name() const;
56  void setName(const QString& name);
57 
58  QString tooltip() const { return myPath; }
59 
60  const QString& backgroundMusic();
61  void setBackgroundMusic(const QString& music);
62 
63  const QString& resetGroup() const;
64  void setResetGroup(const QString& resetGroup);
65 
66  QStringList archetypes() const;
67  void addArchetype(const QString& archetype);
68 
69  QStringList faces() const;
70  void addFace(const QString& face);
71 
72  QStringList animations() const;
73  void addAnimation(const QString& anim);
74 
75  const QDateTime& mapTime() const;
76  void setMapTime(const QDateTime& date);
77 
78  QStringList exitsTo() const;
79  void addExitTo(const QString& path);
80 
81  QStringList accessedFrom() const;
82  void addAccessedFrom(const QString& path);
83 
84  int difficulty() const;
85  void setDifficulty(int difficulty);
86 
87  int computedDifficulty() const;
88  void setComputedDifficulty(int computed);
89 
90  qint64 experience() const;
91  void setExperience(qint64 experience);
92 
93  const QString& region() const;
94  void setRegion(const QString& region);
95 
96  QStringList messages() const;
97  void addMessage(const QString& message);
98 
99  QStringList quests() const;
100  void addQuest(const QString& quest);
101 
102  QHash<QString, int>& shopItems();
103  const QHash<QString, int>& shopItems() const;
104 
105  double shopGreed() const;
106  void setShopGreed(double greed);
107  const QString& shopRace() const;
108  void setShopRace(const QString& race);
109  quint64 shopMin() const;
110  void setShopMin(quint64 min);
111  quint64 shopMax() const;
112  void setShopMax(quint64 max);
113 
114  QList<RandomMap*> randomMaps() const;
115  void addRandomMap(RandomMap* map);
116 
117  protected:
118  QString myPath;
119  QString myName;
120  QStringList myArchetypes;
121  QSet<QString> myFaces;
122  QSet<QString> myAnimations;
123  QDateTime myMapTime;
124  QStringList myExitsTo;
125  QStringList myAccessedFrom;
128  qint64 myExperience;
129  QString myRegion;
130  QStringList myMessages;
131  QStringList myQuests;
132  QHash<QString, int> myShopItems;
133  double myShopGreed;
134  QString myShopRace;
136  QList<RandomMap*> myRandomMaps;
138  QString myResetGroup;
139 };
140 
141 #endif // CLASS_CRE_MAP_INFORMATION_H
RandomMap
Definition: RandomMap.h:24
CREMapInformation::setShopGreed
void setShopGreed(double greed)
Definition: CREMapInformation.cpp:233
CREMapInformation::region
const QString & region() const
Definition: CREMapInformation.cpp:187
CREMapInformation::myFaces
QSet< QString > myFaces
Definition: CREMapInformation.h:121
CREMapInformation::myQuests
QStringList myQuests
Definition: CREMapInformation.h:131
CREMapInformation::displayName
virtual QString displayName() const override
Definition: CREMapInformation.cpp:47
CREMapInformation::setComputedDifficulty
void setComputedDifficulty(int computed)
Definition: CREMapInformation.cpp:172
AssetWrapper.h
CREMapInformation::myAnimations
QSet< QString > myAnimations
Definition: CREMapInformation.h:122
CREMapInformation::uses
virtual PossibleUse uses(const AssetWrapper *asset, std::string &) const override
Definition: CREMapInformation.cpp:278
CREMapInformation::myDifficulty
int myDifficulty
Definition: CREMapInformation.h:126
CREMapInformation::difficulty
int difficulty
Definition: CREMapInformation.h:33
CREMapInformation::myName
QString myName
Definition: CREMapInformation.h:119
CREMapInformation::exitsTo
QStringList exitsTo() const
Definition: CREMapInformation.cpp:135
CREMapInformation::setPath
void setPath(const QString &path)
Definition: CREMapInformation.cpp:59
CREMapInformation::shopRace
QString shopRace
Definition: CREMapInformation.h:39
CREMapInformation::shopItems
QHash< QString, int > & shopItems()
Definition: CREMapInformation.cpp:218
AssetWrapper::PossibleUse
PossibleUse
Definition: AssetWrapper.h:32
CREMapInformation::tooltip
QString tooltip() const
Definition: CREMapInformation.h:58
CREMapInformation::archetypes
QStringList archetypes() const
Definition: CREMapInformation.cpp:94
CREMapInformation::myMessages
QStringList myMessages
Definition: CREMapInformation.h:130
CREMapInformation::myShopMax
quint64 myShopMax
Definition: CREMapInformation.h:135
CREMapInformation::myShopItems
QHash< QString, int > myShopItems
Definition: CREMapInformation.h:132
CREMapInformation::myAccessedFrom
QStringList myAccessedFrom
Definition: CREMapInformation.h:125
CREMapInformation::setDifficulty
void setDifficulty(int difficulty)
Definition: CREMapInformation.cpp:162
CREMapInformation::myExitsTo
QStringList myExitsTo
Definition: CREMapInformation.h:124
CREMapInformation::addAnimation
void addAnimation(const QString &anim)
Definition: CREMapInformation.cpp:120
CREMapInformation::myResetGroup
QString myResetGroup
Definition: CREMapInformation.h:138
CREMapInformation::addMessage
void addMessage(const QString &message)
Definition: CREMapInformation.cpp:201
CREMapInformation::name
QString name
Definition: CREMapInformation.h:32
CREMapInformation::messages
QStringList messages() const
Definition: CREMapInformation.cpp:196
CREMapInformation::myShopRace
QString myShopRace
Definition: CREMapInformation.h:134
CREMapInformation
Definition: CREMapInformation.h:27
CREMapInformation::setRegion
void setRegion(const QString &region)
Definition: CREMapInformation.cpp:191
CREMapInformation::mapTime
const QDateTime & mapTime() const
Definition: CREMapInformation.cpp:125
CREMapInformation::myArchetypes
QStringList myArchetypes
Definition: CREMapInformation.h:120
CREMapInformation::setShopMin
void setShopMin(quint64 min)
Definition: CREMapInformation.cpp:253
CREMapInformation::animations
QStringList animations() const
Definition: CREMapInformation.cpp:115
CREMapInformation::addQuest
void addQuest(const QString &quest)
Definition: CREMapInformation.cpp:212
AssetWrapper
Base class for all assets that can be displayed or edited by CRE.
Definition: AssetWrapper.h:25
CREMapInformation::setShopRace
void setShopRace(const QString &race)
Definition: CREMapInformation.cpp:243
CREMapInformation::accessedFrom
QStringList accessedFrom() const
Definition: CREMapInformation.cpp:146
CREMapInformation::resetGroup
QString resetGroup
Definition: CREMapInformation.h:36
CREMapInformation::addFace
void addFace(const QString &face)
Definition: CREMapInformation.cpp:110
CREMapInformation::myShopMin
quint64 myShopMin
Definition: CREMapInformation.h:135
CREMapInformation::experience
qint64 experience
Definition: CREMapInformation.h:35
CREMapInformation::path
QString path
Definition: CREMapInformation.h:31
CREMapInformation::shopMax
quint64 shopMax
Definition: CREMapInformation.h:41
CREMapInformation::quests
QStringList quests() const
Definition: CREMapInformation.cpp:207
CREMapInformation::computedDifficulty
int computedDifficulty
Definition: CREMapInformation.h:34
CREMapInformation::myComputedDifficulty
int myComputedDifficulty
Definition: CREMapInformation.h:127
CREMapInformation::myBackgroundMusic
QString myBackgroundMusic
Definition: CREMapInformation.h:137
CREMapInformation::addExitTo
void addExitTo(const QString &path)
Definition: CREMapInformation.cpp:140
CREMapInformation::randomMaps
QList< RandomMap * > randomMaps() const
Definition: CREMapInformation.cpp:268
CREMapInformation::setBackgroundMusic
void setBackgroundMusic(const QString &music)
Definition: CREMapInformation.cpp:79
CREMapInformation::addRandomMap
void addRandomMap(RandomMap *map)
Definition: CREMapInformation.cpp:273
CREMapInformation::setMapTime
void setMapTime(const QDateTime &date)
Definition: CREMapInformation.cpp:130
CREMapInformation::setShopMax
void setShopMax(quint64 max)
Definition: CREMapInformation.cpp:263
CREMapInformation::backgroundMusic
QString backgroundMusic
Definition: CREMapInformation.h:37
CREMapInformation::setResetGroup
void setResetGroup(const QString &resetGroup)
Definition: CREMapInformation.cpp:89
CREMapInformation::myExperience
qint64 myExperience
Definition: CREMapInformation.h:128
CREMapInformation::setName
void setName(const QString &name)
Definition: CREMapInformation.cpp:69
CREMapInformation::addArchetype
void addArchetype(const QString &archetype)
Definition: CREMapInformation.cpp:99
CREMapInformation::shopGreed
double shopGreed
Definition: CREMapInformation.h:38
CREMapInformation::faces
QStringList faces() const
Definition: CREMapInformation.cpp:105
CREMapInformation::myShopGreed
double myShopGreed
Definition: CREMapInformation.h:133
CREMapInformation::addAccessedFrom
void addAccessedFrom(const QString &path)
Definition: CREMapInformation.cpp:151
CREMapInformation::setExperience
void setExperience(qint64 experience)
Definition: CREMapInformation.cpp:182
CREMapInformation::myPath
QString myPath
Definition: CREMapInformation.h:118
CREMapInformation::myMapTime
QDateTime myMapTime
Definition: CREMapInformation.h:123
CREMapInformation::myRandomMaps
QList< RandomMap * > myRandomMaps
Definition: CREMapInformation.h:136
CREMapInformation::shopMin
quint64 shopMin
Definition: CREMapInformation.h:40
CREMapInformation::myRegion
QString myRegion
Definition: CREMapInformation.h:129