Combine the 3 QMaps for MAPSEC data

This commit is contained in:
GriffinR
2025-04-03 13:24:50 -04:00
parent a4508918a1
commit e94fce0c8d
7 changed files with 63 additions and 45 deletions

View File

@@ -56,8 +56,8 @@ public:
bool loadLayout(poryjson::Json);
bool loadEntries();
void setEntries(QMap<QString, MapSectionEntry> *entries) { this->region_map_entries = entries; }
void setEntries(const QMap<QString, MapSectionEntry> &entries) { *(this->region_map_entries) = entries; }
void setEntries(QHash<QString, MapSectionEntry> *entries) { this->region_map_entries = entries; }
void setEntries(const QHash<QString, MapSectionEntry> &entries) { *(this->region_map_entries) = entries; }
void clearEntries() { this->region_map_entries->clear(); }
MapSectionEntry getEntry(QString section);
void setEntry(QString section, MapSectionEntry entry);
@@ -151,7 +151,7 @@ signals:
void mapNeedsDisplaying();
private:
QMap<QString, MapSectionEntry> *region_map_entries = nullptr;
QHash<QString, MapSectionEntry> *region_map_entries = nullptr;
QString alias = "";

View File

@@ -153,7 +153,7 @@ private:
/// ClearEntries
class ClearEntries : public QUndoCommand {
public:
ClearEntries(RegionMap *map, QMap<QString, MapSectionEntry>, QUndoCommand *parent = nullptr);
ClearEntries(RegionMap *map, QHash<QString, MapSectionEntry>, QUndoCommand *parent = nullptr);
void undo() override;
void redo() override;
@@ -163,7 +163,7 @@ public:
private:
RegionMap *map;
QMap<QString, MapSectionEntry> entries;
QHash<QString, MapSectionEntry> entries;
};
#endif // REGIONMAPEDITCOMMANDS_H

View File

@@ -62,7 +62,6 @@ public:
QStringList mapSectionIdNames;
QMap<uint32_t, QString> encounterTypeToName;
QMap<uint32_t, QString> terrainTypeToName;
QMap<QString, MapSectionEntry> regionMapEntries;
QMap<QString, QMap<QString, uint16_t>> metatileLabelsMap;
QMap<QString, uint16_t> unusedMetatileLabels;
QMap<QString, uint32_t> metatileBehaviorMap;
@@ -157,7 +156,7 @@ public:
bool addNewMapsec(const QString &idName, const QString &displayName = QString());
void removeMapsec(const QString &idName);
QString getMapsecDisplayName(const QString &idName) const { return this->mapSectionDisplayNames.value(idName); }
QString getMapsecDisplayName(const QString &idName) const { return this->locationData.value(idName).displayName; }
void setMapsecDisplayName(const QString &idName, const QString &displayName);
bool hasUnsavedChanges();
@@ -240,6 +239,9 @@ public:
static QString getExistingFilepath(QString filepath);
void applyParsedLimits();
void setRegionMapEntries(const QHash<QString, MapSectionEntry> &entries);
QHash<QString, MapSectionEntry> getRegionMapEntries() const;
static QString getEmptyMapDefineName();
static QString getDynamicMapDefineName();
static QString getDynamicMapName();
@@ -262,8 +264,6 @@ public:
static QString getMapGroupPrefix();
private:
QHash<QString, QString> mapSectionDisplayNames;
QHash<QString, QJsonObject> mapSectionCustomData;
QMap<QString, qint64> modifiedFileTimestamps;
QMap<QString, QString> facingDirections;
QHash<QString, QString> speciesToIconPath;
@@ -298,6 +298,15 @@ private:
};
QMap<QString, EventGraphics*> eventGraphicsMap;
// The extra data that can be associated with each MAPSEC name.
struct LocationData
{
MapSectionEntry map;
QString displayName;
QJsonObject custom;
};
QHash<QString, LocationData> locationData;
void updateLayout(Layout *);
void setNewLayoutBlockdata(Layout *layout);

View File

@@ -95,7 +95,7 @@ private:
void saveConfig();
bool loadRegionMapEntries();
bool saveRegionMapEntries();
QMap<QString, MapSectionEntry> region_map_entries;
QHash<QString, MapSectionEntry> region_map_entries;
bool buildConfigDialog();
poryjson::Json configRegionMapDialog();