Add getIndexOffset, change expected event fields to QSet
This commit is contained in:
parent
300d153849
commit
af0abaa38d
3 changed files with 25 additions and 22 deletions
|
@ -89,6 +89,7 @@ public:
|
||||||
static Event* createNewSecretBaseEvent(Project*);
|
static Event* createNewSecretBaseEvent(Project*);
|
||||||
static bool isValidType(QString event_type);
|
static bool isValidType(QString event_type);
|
||||||
static QString typeToGroup(QString event_type);
|
static QString typeToGroup(QString event_type);
|
||||||
|
static int getIndexOffset(QString group_type);
|
||||||
|
|
||||||
OrderedJson::object buildObjectEventJSON();
|
OrderedJson::object buildObjectEventJSON();
|
||||||
OrderedJson::object buildCloneObjectEventJSON(const QMap<QString, QString> &);
|
OrderedJson::object buildCloneObjectEventJSON(const QMap<QString, QString> &);
|
||||||
|
@ -101,7 +102,7 @@ public:
|
||||||
void setPixmapFromSpritesheet(QImage, int, int, bool);
|
void setPixmapFromSpritesheet(QImage, int, int, bool);
|
||||||
int getPixelX();
|
int getPixelX();
|
||||||
int getPixelY();
|
int getPixelY();
|
||||||
QStringList getExpectedFields();
|
QSet<QString> getExpectedFields();
|
||||||
void readCustomValues(QJsonObject values);
|
void readCustomValues(QJsonObject values);
|
||||||
void addCustomValuesTo(OrderedJson::object *obj);
|
void addCustomValuesTo(OrderedJson::object *obj);
|
||||||
void setFrameFromMovement(QString);
|
void setFrameFromMovement(QString);
|
||||||
|
|
|
@ -195,7 +195,7 @@ int Event::getPixelY()
|
||||||
return (this->y() * 16) - qMax(0, this->spriteHeight - 16);
|
return (this->y() * 16) - qMax(0, this->spriteHeight - 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
const QStringList expectedObjectFields = {
|
const QSet<QString> expectedObjectFields = {
|
||||||
"graphics_id",
|
"graphics_id",
|
||||||
"elevation",
|
"elevation",
|
||||||
"movement_type",
|
"movement_type",
|
||||||
|
@ -207,20 +207,20 @@ const QStringList expectedObjectFields = {
|
||||||
"flag",
|
"flag",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedCloneObjectFields = {
|
const QSet<QString> expectedCloneObjectFields = {
|
||||||
"type",
|
"type",
|
||||||
"graphics_id",
|
"graphics_id",
|
||||||
"target_local_id",
|
"target_local_id",
|
||||||
"target_map",
|
"target_map",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedWarpFields = {
|
const QSet<QString> expectedWarpFields = {
|
||||||
"elevation",
|
"elevation",
|
||||||
"dest_map",
|
"dest_map",
|
||||||
"dest_warp_id",
|
"dest_warp_id",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedTriggerFields = {
|
const QSet<QString> expectedTriggerFields = {
|
||||||
"type",
|
"type",
|
||||||
"elevation",
|
"elevation",
|
||||||
"var",
|
"var",
|
||||||
|
@ -228,40 +228,40 @@ const QStringList expectedTriggerFields = {
|
||||||
"script",
|
"script",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedWeatherTriggerFields = {
|
const QSet<QString> expectedWeatherTriggerFields = {
|
||||||
"type",
|
"type",
|
||||||
"elevation",
|
"elevation",
|
||||||
"weather",
|
"weather",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedSignFields = {
|
const QSet<QString> expectedSignFields = {
|
||||||
"type",
|
"type",
|
||||||
"elevation",
|
"elevation",
|
||||||
"player_facing_dir",
|
"player_facing_dir",
|
||||||
"script",
|
"script",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedHiddenItemFields = {
|
const QSet<QString> expectedHiddenItemFields = {
|
||||||
"type",
|
"type",
|
||||||
"elevation",
|
"elevation",
|
||||||
"item",
|
"item",
|
||||||
"flag",
|
"flag",
|
||||||
};
|
};
|
||||||
|
|
||||||
const QStringList expectedSecretBaseFields = {
|
const QSet<QString> expectedSecretBaseFields = {
|
||||||
"type",
|
"type",
|
||||||
"elevation",
|
"elevation",
|
||||||
"secret_base_id",
|
"secret_base_id",
|
||||||
};
|
};
|
||||||
|
|
||||||
QStringList Event::getExpectedFields()
|
QSet<QString> Event::getExpectedFields()
|
||||||
{
|
{
|
||||||
QString type = this->get("event_type");
|
QString type = this->get("event_type");
|
||||||
QStringList expectedFields = QStringList();
|
QSet<QString> expectedFields = QSet<QString>();
|
||||||
if (type == EventType::Object) {
|
if (type == EventType::Object) {
|
||||||
expectedFields = expectedObjectFields;
|
expectedFields = expectedObjectFields;
|
||||||
if (projectConfig.getEventCloneObjectEnabled()) {
|
if (projectConfig.getEventCloneObjectEnabled()) {
|
||||||
expectedFields.append("type");
|
expectedFields.insert("type");
|
||||||
}
|
}
|
||||||
} else if (type == EventType::CloneObject) {
|
} else if (type == EventType::CloneObject) {
|
||||||
expectedFields = expectedCloneObjectFields;
|
expectedFields = expectedCloneObjectFields;
|
||||||
|
@ -276,10 +276,10 @@ QStringList Event::getExpectedFields()
|
||||||
} else if (type == EventType::HiddenItem) {
|
} else if (type == EventType::HiddenItem) {
|
||||||
expectedFields = expectedHiddenItemFields;
|
expectedFields = expectedHiddenItemFields;
|
||||||
if (projectConfig.getHiddenItemQuantityEnabled()) {
|
if (projectConfig.getHiddenItemQuantityEnabled()) {
|
||||||
expectedFields.append("quantity");
|
expectedFields.insert("quantity");
|
||||||
}
|
}
|
||||||
if (projectConfig.getHiddenItemRequiresItemfinderEnabled()) {
|
if (projectConfig.getHiddenItemRequiresItemfinderEnabled()) {
|
||||||
expectedFields.append("underfoot");
|
expectedFields.insert("underfoot");
|
||||||
}
|
}
|
||||||
} else if (type == EventType::SecretBase) {
|
} else if (type == EventType::SecretBase) {
|
||||||
expectedFields = expectedSecretBaseFields;
|
expectedFields = expectedSecretBaseFields;
|
||||||
|
@ -291,7 +291,7 @@ QStringList Event::getExpectedFields()
|
||||||
void Event::readCustomValues(QJsonObject values)
|
void Event::readCustomValues(QJsonObject values)
|
||||||
{
|
{
|
||||||
this->customValues.clear();
|
this->customValues.clear();
|
||||||
QStringList expectedFields = this->getExpectedFields();
|
QSet<QString> expectedFields = this->getExpectedFields();
|
||||||
for (QString key : values.keys()) {
|
for (QString key : values.keys()) {
|
||||||
if (!expectedFields.contains(key)) {
|
if (!expectedFields.contains(key)) {
|
||||||
this->customValues[key] = values[key].toString();
|
this->customValues[key] = values[key].toString();
|
||||||
|
@ -466,6 +466,11 @@ void Event::setFrameFromMovement(QString facingDir) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// All event groups excepts warps have IDs that start at 1
|
||||||
|
int Event::getIndexOffset(QString group_type) {
|
||||||
|
return (group_type == EventGroup::Warp) ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
bool Event::isValidType(QString event_type) {
|
bool Event::isValidType(QString event_type) {
|
||||||
return EventTypeTable.contains(event_type);
|
return EventTypeTable.contains(event_type);
|
||||||
}
|
}
|
||||||
|
|
|
@ -719,10 +719,9 @@ void MainWindow::openWarpMap(QString map_name, QString event_id, QString event_g
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select the target event.
|
// Select the target event.
|
||||||
if (event_group != EventGroup::Warp && event_index)
|
event_index -= Event::getIndexOffset(event_group);
|
||||||
event_index--;
|
|
||||||
QList<Event*> events = editor->map->events[event_group];
|
QList<Event*> events = editor->map->events[event_group];
|
||||||
if (events.length() > event_index) {
|
if (event_index < events.length() && event_index >= 0) {
|
||||||
Event *event = events.at(event_index);
|
Event *event = events.at(event_index);
|
||||||
for (DraggablePixmapItem *item : editor->getObjects()) {
|
for (DraggablePixmapItem *item : editor->getObjects()) {
|
||||||
if (item->event == event) {
|
if (item->event == event) {
|
||||||
|
@ -1946,9 +1945,7 @@ void MainWindow::updateSelectedObjects() {
|
||||||
QString event_type = item->event->get("event_type");
|
QString event_type = item->event->get("event_type");
|
||||||
QString event_group_type = item->event->get("event_group_type");
|
QString event_group_type = item->event->get("event_group_type");
|
||||||
QString map_name = item->event->get("map_name");
|
QString map_name = item->event->get("map_name");
|
||||||
int event_offs;
|
int event_offs = Event::getIndexOffset(event_group_type);
|
||||||
if (event_type == EventType::Warp) { event_offs = 0; }
|
|
||||||
else { event_offs = 1; }
|
|
||||||
frame->ui->label_name->setText(QString("%1 Id").arg(event_type));
|
frame->ui->label_name->setText(QString("%1 Id").arg(event_type));
|
||||||
|
|
||||||
if (events.count() == 1)
|
if (events.count() == 1)
|
||||||
|
@ -2453,7 +2450,7 @@ void MainWindow::eventTabChanged(int index) {
|
||||||
void MainWindow::selectedEventIndexChanged(int index)
|
void MainWindow::selectedEventIndexChanged(int index)
|
||||||
{
|
{
|
||||||
QString group = getEventGroupFromTabWidget(ui->tabWidget_EventType->currentWidget());
|
QString group = getEventGroupFromTabWidget(ui->tabWidget_EventType->currentWidget());
|
||||||
int event_offs = group == EventGroup::Warp ? 0 : 1;
|
int event_offs = Event::getIndexOffset(group);
|
||||||
Event *event = editor->map->events.value(group).at(index - event_offs);
|
Event *event = editor->map->events.value(group).at(index - event_offs);
|
||||||
DraggablePixmapItem *selectedEvent = nullptr;
|
DraggablePixmapItem *selectedEvent = nullptr;
|
||||||
for (QGraphicsItem *child : editor->events_group->childItems()) {
|
for (QGraphicsItem *child : editor->events_group->childItems()) {
|
||||||
|
|
Loading…
Reference in a new issue