Add event group constants

This commit is contained in:
GriffinR 2022-02-05 18:53:04 -05:00 committed by huderlem
parent 9963e4c8aa
commit 31f400e2c9
5 changed files with 98 additions and 73 deletions

View file

@ -3,6 +3,12 @@
#include "project.h" #include "project.h"
#include "config.h" #include "config.h"
QString EventGroup::Object = "object_event_group";
QString EventGroup::Warp = "warp_event_group";
QString EventGroup::Heal = "heal_event_group";
QString EventGroup::Coord = "coord_event_group";
QString EventGroup::Bg = "bg_event_group";
QString EventType::Object = "event_object"; QString EventType::Object = "event_object";
QString EventType::Warp = "event_warp"; QString EventType::Warp = "event_warp";
QString EventType::Trigger = "event_trigger"; QString EventType::Trigger = "event_trigger";
@ -10,7 +16,18 @@ QString EventType::WeatherTrigger = "event_weather_trigger";
QString EventType::Sign = "event_sign"; QString EventType::Sign = "event_sign";
QString EventType::HiddenItem = "event_hidden_item"; QString EventType::HiddenItem = "event_hidden_item";
QString EventType::SecretBase = "event_secret_base"; QString EventType::SecretBase = "event_secret_base";
QString EventType::HealLocation = "event_heal_location"; QString EventType::HealLocation = "event_healspot";
const QMap<QString, QString> EventTypeTable = {
{EventType::Object, EventGroup::Object},
{EventType::Warp, EventGroup::Warp},
{EventType::Trigger, EventGroup::Coord},
{EventType::WeatherTrigger, EventGroup::Coord},
{EventType::Sign, EventGroup::Bg},
{EventType::HiddenItem, EventGroup::Bg},
{EventType::SecretBase, EventGroup::Bg},
{EventType::HealLocation, EventGroup::Heal},
};
Event::Event() : Event::Event() :
spriteWidth(16), spriteWidth(16),
@ -68,7 +85,7 @@ Event* Event::createNewEvent(QString event_type, QString map_name, Project *proj
Event* Event::createNewObjectEvent(Project *project) Event* Event::createNewObjectEvent(Project *project)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "object_event_group"); event->put("event_group_type", EventGroup::Object);
event->put("event_type", EventType::Object); event->put("event_type", EventType::Object);
event->put("sprite", project->gfxNames.first()); event->put("sprite", project->gfxNames.first());
event->put("movement_type", project->movementTypes.first()); event->put("movement_type", project->movementTypes.first());
@ -89,7 +106,7 @@ Event* Event::createNewObjectEvent(Project *project)
Event* Event::createNewWarpEvent(QString map_name) Event* Event::createNewWarpEvent(QString map_name)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "warp_event_group"); event->put("event_group_type", EventGroup::Warp);
event->put("event_type", EventType::Warp); event->put("event_type", EventType::Warp);
event->put("destination_warp", 0); event->put("destination_warp", 0);
event->put("destination_map_name", map_name); event->put("destination_map_name", map_name);
@ -100,7 +117,7 @@ Event* Event::createNewWarpEvent(QString map_name)
Event* Event::createNewHealLocationEvent(QString map_name) Event* Event::createNewHealLocationEvent(QString map_name)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "heal_event_group"); event->put("event_group_type", EventGroup::Heal);
event->put("event_type", EventType::HealLocation); event->put("event_type", EventType::HealLocation);
event->put("loc_name", QString(Map::mapConstantFromName(map_name)).remove(0,4)); event->put("loc_name", QString(Map::mapConstantFromName(map_name)).remove(0,4));
event->put("id_name", map_name.replace(QRegularExpression("([a-z])([A-Z])"), "\\1_\\2").toUpper()); event->put("id_name", map_name.replace(QRegularExpression("([a-z])([A-Z])"), "\\1_\\2").toUpper());
@ -115,7 +132,7 @@ Event* Event::createNewHealLocationEvent(QString map_name)
Event* Event::createNewTriggerEvent(Project *project) Event* Event::createNewTriggerEvent(Project *project)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "coord_event_group"); event->put("event_group_type", EventGroup::Coord);
event->put("event_type", EventType::Trigger); event->put("event_type", EventType::Trigger);
event->put("script_label", "NULL"); event->put("script_label", "NULL");
event->put("script_var", project->varNames.first()); event->put("script_var", project->varNames.first());
@ -127,7 +144,7 @@ Event* Event::createNewTriggerEvent(Project *project)
Event* Event::createNewWeatherTriggerEvent(Project *project) Event* Event::createNewWeatherTriggerEvent(Project *project)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "coord_event_group"); event->put("event_group_type", EventGroup::Coord);
event->put("event_type", EventType::WeatherTrigger); event->put("event_type", EventType::WeatherTrigger);
event->put("weather", project->coordEventWeatherNames.first()); event->put("weather", project->coordEventWeatherNames.first());
event->put("elevation", 0); event->put("elevation", 0);
@ -137,7 +154,7 @@ Event* Event::createNewWeatherTriggerEvent(Project *project)
Event* Event::createNewSignEvent(Project *project) Event* Event::createNewSignEvent(Project *project)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "bg_event_group"); event->put("event_group_type", EventGroup::Bg);
event->put("event_type", EventType::Sign); event->put("event_type", EventType::Sign);
event->put("player_facing_direction", project->bgEventFacingDirections.first()); event->put("player_facing_direction", project->bgEventFacingDirections.first());
event->put("script_label", "NULL"); event->put("script_label", "NULL");
@ -148,7 +165,7 @@ Event* Event::createNewSignEvent(Project *project)
Event* Event::createNewHiddenItemEvent(Project *project) Event* Event::createNewHiddenItemEvent(Project *project)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "bg_event_group"); event->put("event_group_type", EventGroup::Bg);
event->put("event_type", EventType::HiddenItem); event->put("event_type", EventType::HiddenItem);
event->put("item", project->itemNames.first()); event->put("item", project->itemNames.first());
event->put("flag", project->flagNames.first()); event->put("flag", project->flagNames.first());
@ -165,7 +182,7 @@ Event* Event::createNewHiddenItemEvent(Project *project)
Event* Event::createNewSecretBaseEvent(Project *project) Event* Event::createNewSecretBaseEvent(Project *project)
{ {
Event *event = new Event; Event *event = new Event;
event->put("event_group_type", "bg_event_group"); event->put("event_group_type", EventGroup::Bg);
event->put("event_type", EventType::SecretBase); event->put("event_type", EventType::SecretBase);
event->put("secret_base_id", project->secretBaseIds.first()); event->put("secret_base_id", project->secretBaseIds.first());
event->put("elevation", 0); event->put("elevation", 0);
@ -442,3 +459,11 @@ void Event::setFrameFromMovement(QString facingDir) {
this->hFlip = true; this->hFlip = true;
} }
} }
bool Event::isValidType(QString event_type) {
return EventTypeTable.contains(event_type);
}
QString Event::typeToGroup(QString event_type) {
return EventTypeTable.value(event_type, QString());
}

View file

@ -2065,7 +2065,7 @@ bool Editor::eventLimitReached(Map *map, QString event_type)
{ {
if (project && map && !event_type.isEmpty()) { if (project && map && !event_type.isEmpty()) {
if (event_type == EventType::Object) if (event_type == EventType::Object)
return map->events.value("object_event_group").length() >= project->getMaxObjectEvents(); return map->events.value(EventGroup::Object).length() >= project->getMaxObjectEvents();
} }
return false; return false;
} }

View file

@ -728,7 +728,7 @@ void MainWindow::openWarpMap(QString map_name, QString warp_num) {
return; return;
} }
QList<Event*> warp_events = editor->map->events["warp_event_group"]; QList<Event*> warp_events = editor->map->events[EventGroup::Warp];
if (warp_events.length() > warpNum) { if (warp_events.length() > warpNum) {
Event *warp_event = warp_events.at(warpNum); Event *warp_event = warp_events.at(warpNum);
for (DraggablePixmapItem *item : editor->getObjects()) { for (DraggablePixmapItem *item : editor->getObjects()) {
@ -2323,27 +2323,27 @@ void MainWindow::updateSelectedObjects() {
{ {
QString event_group_type = events[0]->event->get("event_group_type"); QString event_group_type = events[0]->event->get("event_group_type");
if (event_group_type == "object_event_group") { if (event_group_type == EventGroup::Object) {
scrollTarget = ui->scrollArea_Objects; scrollTarget = ui->scrollArea_Objects;
target = ui->scrollAreaWidgetContents_Objects; target = ui->scrollAreaWidgetContents_Objects;
ui->tabWidget_EventType->setCurrentWidget(ui->tab_Objects); ui->tabWidget_EventType->setCurrentWidget(ui->tab_Objects);
} }
else if (event_group_type == "warp_event_group") { else if (event_group_type == EventGroup::Warp) {
scrollTarget = ui->scrollArea_Warps; scrollTarget = ui->scrollArea_Warps;
target = ui->scrollAreaWidgetContents_Warps; target = ui->scrollAreaWidgetContents_Warps;
ui->tabWidget_EventType->setCurrentWidget(ui->tab_Warps); ui->tabWidget_EventType->setCurrentWidget(ui->tab_Warps);
} }
else if (event_group_type == "coord_event_group") { else if (event_group_type == EventGroup::Coord) {
scrollTarget = ui->scrollArea_Triggers; scrollTarget = ui->scrollArea_Triggers;
target = ui->scrollAreaWidgetContents_Triggers; target = ui->scrollAreaWidgetContents_Triggers;
ui->tabWidget_EventType->setCurrentWidget(ui->tab_Triggers); ui->tabWidget_EventType->setCurrentWidget(ui->tab_Triggers);
} }
else if (event_group_type == "bg_event_group") { else if (event_group_type == EventGroup::Bg) {
scrollTarget = ui->scrollArea_BGs; scrollTarget = ui->scrollArea_BGs;
target = ui->scrollAreaWidgetContents_BGs; target = ui->scrollAreaWidgetContents_BGs;
ui->tabWidget_EventType->setCurrentWidget(ui->tab_BGs); ui->tabWidget_EventType->setCurrentWidget(ui->tab_BGs);
} }
else if (event_group_type == "heal_event_group") { else if (event_group_type == EventGroup::Heal) {
scrollTarget = ui->scrollArea_Healspots; scrollTarget = ui->scrollArea_Healspots;
target = ui->scrollAreaWidgetContents_Healspots; target = ui->scrollAreaWidgetContents_Healspots;
ui->tabWidget_EventType->setCurrentWidget(ui->tab_Healspots); ui->tabWidget_EventType->setCurrentWidget(ui->tab_Healspots);
@ -2400,23 +2400,23 @@ QString MainWindow::getEventGroupFromTabWidget(QWidget *tab)
QString ret = ""; QString ret = "";
if (tab == eventTabObjectWidget) if (tab == eventTabObjectWidget)
{ {
ret = "object_event_group"; ret = EventGroup::Object;
} }
else if (tab == eventTabWarpWidget) else if (tab == eventTabWarpWidget)
{ {
ret = "warp_event_group"; ret = EventGroup::Warp;
} }
else if (tab == eventTabTriggerWidget) else if (tab == eventTabTriggerWidget)
{ {
ret = "coord_event_group"; ret = EventGroup::Coord;
} }
else if (tab == eventTabBGWidget) else if (tab == eventTabBGWidget)
{ {
ret = "bg_event_group"; ret = EventGroup::Bg;
} }
else if (tab == eventTabHealspotWidget) else if (tab == eventTabHealspotWidget)
{ {
ret = "heal_event_group"; ret = EventGroup::Heal;
} }
return ret; return ret;
} }
@ -2426,23 +2426,23 @@ void MainWindow::eventTabChanged(int index) {
QString group = getEventGroupFromTabWidget(ui->tabWidget_EventType->widget(index)); QString group = getEventGroupFromTabWidget(ui->tabWidget_EventType->widget(index));
DraggablePixmapItem *selectedEvent = nullptr; DraggablePixmapItem *selectedEvent = nullptr;
if (group == "object_event_group") { if (group == EventGroup::Object) {
selectedEvent = selectedObject; selectedEvent = selectedObject;
ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newObjectAction); ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newObjectAction);
} }
else if (group == "warp_event_group") { else if (group == EventGroup::Warp) {
selectedEvent = selectedWarp; selectedEvent = selectedWarp;
ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newWarpAction); ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newWarpAction);
} }
else if (group == "coord_event_group") { else if (group == EventGroup::Coord) {
selectedEvent = selectedTrigger; selectedEvent = selectedTrigger;
ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newTriggerAction); ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newTriggerAction);
} }
else if (group == "bg_event_group") { else if (group == EventGroup::Bg) {
selectedEvent = selectedBG; selectedEvent = selectedBG;
ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newSignAction); ui->newEventToolButton->setDefaultAction(ui->newEventToolButton->newSignAction);
} }
else if (group == "heal_event_group") { else if (group == EventGroup::Heal) {
selectedEvent = selectedHealspot; selectedEvent = selectedHealspot;
} }
@ -2468,7 +2468,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 == "warp_event_group" ? 0 : 1; int event_offs = group == EventGroup::Warp ? 0 : 1;
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()) {
@ -2502,7 +2502,7 @@ void MainWindow::on_toolButton_deleteObject_clicked() {
int numDeleted = 0; int numDeleted = 0;
for (DraggablePixmapItem *item : *editor->selected_events) { for (DraggablePixmapItem *item : *editor->selected_events) {
QString event_group = item->event->get("event_group_type"); QString event_group = item->event->get("event_group_type");
if (event_group != "heal_event_group") { if (event_group != EventGroup::Heal) {
// Get the index for the event that should be selected after this event has been deleted. // Get the index for the event that should be selected after this event has been deleted.
// If it's at the end of the list, select the previous event, otherwise select the next one. // If it's at the end of the list, select the previous event, otherwise select the next one.
// Don't bother getting the event to select if there are still more events to delete // Don't bother getting the event to select if there are still more events to delete

View file

@ -211,7 +211,7 @@ bool Project::loadMapData(Map* map) {
map->sharedScriptsMap = mapObj["shared_scripts_map"].toString(); map->sharedScriptsMap = mapObj["shared_scripts_map"].toString();
// Events // Events
map->events["object_event_group"].clear(); map->events[EventGroup::Object].clear();
QJsonArray objectEventsArr = mapObj["object_events"].toArray(); QJsonArray objectEventsArr = mapObj["object_events"].toArray();
for (int i = 0; i < objectEventsArr.size(); i++) { for (int i = 0; i < objectEventsArr.size(); i++) {
QJsonObject event = objectEventsArr[i].toObject(); QJsonObject event = objectEventsArr[i].toObject();
@ -231,11 +231,11 @@ bool Project::loadMapData(Map* map) {
object->put("sight_radius_tree_id", event["trainer_sight_or_berry_tree_id"].toString()); object->put("sight_radius_tree_id", event["trainer_sight_or_berry_tree_id"].toString());
object->put("script_label", event["script"].toString()); object->put("script_label", event["script"].toString());
object->put("event_flag", event["flag"].toString()); object->put("event_flag", event["flag"].toString());
object->put("event_group_type", "object_event_group"); object->put("event_group_type", EventGroup::Object);
map->events["object_event_group"].append(object); map->events[EventGroup::Object].append(object);
} }
map->events["warp_event_group"].clear(); map->events[EventGroup::Warp].clear();
QJsonArray warpEventsArr = mapObj["warp_events"].toArray(); QJsonArray warpEventsArr = mapObj["warp_events"].toArray();
for (int i = 0; i < warpEventsArr.size(); i++) { for (int i = 0; i < warpEventsArr.size(); i++) {
QJsonObject event = warpEventsArr[i].toObject(); QJsonObject event = warpEventsArr[i].toObject();
@ -250,18 +250,18 @@ bool Project::loadMapData(Map* map) {
QString mapConstant = event["dest_map"].toString(); QString mapConstant = event["dest_map"].toString();
if (mapConstantsToMapNames.contains(mapConstant)) { if (mapConstantsToMapNames.contains(mapConstant)) {
warp->put("destination_map_name", mapConstantsToMapNames.value(mapConstant)); warp->put("destination_map_name", mapConstantsToMapNames.value(mapConstant));
warp->put("event_group_type", "warp_event_group"); warp->put("event_group_type", EventGroup::Warp);
map->events["warp_event_group"].append(warp); map->events[EventGroup::Warp].append(warp);
} else if (mapConstant == NONE_MAP_CONSTANT) { } else if (mapConstant == NONE_MAP_CONSTANT) {
warp->put("destination_map_name", NONE_MAP_NAME); warp->put("destination_map_name", NONE_MAP_NAME);
warp->put("event_group_type", "warp_event_group"); warp->put("event_group_type", EventGroup::Warp);
map->events["warp_event_group"].append(warp); map->events[EventGroup::Warp].append(warp);
} else { } else {
logError(QString("Destination map constant '%1' is invalid for warp").arg(mapConstant)); logError(QString("Destination map constant '%1' is invalid for warp").arg(mapConstant));
} }
} }
map->events["heal_event_group"].clear(); map->events[EventGroup::Heal].clear();
for (auto it = healLocations.begin(); it != healLocations.end(); it++) { for (auto it = healLocations.begin(); it != healLocations.end(); it++) {
HealLocation loc = *it; HealLocation loc = *it;
@ -277,18 +277,18 @@ bool Project::loadMapData(Map* map) {
heal->put("index", loc.index); heal->put("index", loc.index);
heal->put("elevation", 3); // TODO: change this? heal->put("elevation", 3); // TODO: change this?
heal->put("destination_map_name", mapConstantsToMapNames.value(map->name)); heal->put("destination_map_name", mapConstantsToMapNames.value(map->name));
heal->put("event_group_type", "heal_event_group"); heal->put("event_group_type", EventGroup::Heal);
heal->put("event_type", EventType::HealLocation); heal->put("event_type", EventType::HealLocation);
if (projectConfig.getHealLocationRespawnDataEnabled()) { if (projectConfig.getHealLocationRespawnDataEnabled()) {
heal->put("respawn_map", mapConstantsToMapNames.value(QString("MAP_" + loc.respawnMap))); heal->put("respawn_map", mapConstantsToMapNames.value(QString("MAP_" + loc.respawnMap)));
heal->put("respawn_npc", loc.respawnNPC); heal->put("respawn_npc", loc.respawnNPC);
} }
map->events["heal_event_group"].append(heal); map->events[EventGroup::Heal].append(heal);
} }
} }
map->events["coord_event_group"].clear(); map->events[EventGroup::Coord].clear();
QJsonArray coordEventsArr = mapObj["coord_events"].toArray(); QJsonArray coordEventsArr = mapObj["coord_events"].toArray();
for (int i = 0; i < coordEventsArr.size(); i++) { for (int i = 0; i < coordEventsArr.size(); i++) {
QJsonObject event = coordEventsArr[i].toObject(); QJsonObject event = coordEventsArr[i].toObject();
@ -302,8 +302,8 @@ bool Project::loadMapData(Map* map) {
coord->put("script_var", event["var"].toString()); coord->put("script_var", event["var"].toString());
coord->put("script_var_value", event["var_value"].toString()); coord->put("script_var_value", event["var_value"].toString());
coord->put("script_label", event["script"].toString()); coord->put("script_label", event["script"].toString());
coord->put("event_group_type", "coord_event_group"); coord->put("event_group_type", EventGroup::Coord);
map->events["coord_event_group"].append(coord); map->events[EventGroup::Coord].append(coord);
} else if (type == "weather") { } else if (type == "weather") {
Event *coord = new Event(event, EventType::WeatherTrigger); Event *coord = new Event(event, EventType::WeatherTrigger);
coord->put("map_name", map->name); coord->put("map_name", map->name);
@ -311,15 +311,15 @@ bool Project::loadMapData(Map* map) {
coord->put("y", QString::number(event["y"].toInt())); coord->put("y", QString::number(event["y"].toInt()));
coord->put("elevation", QString::number(event["elevation"].toInt())); coord->put("elevation", QString::number(event["elevation"].toInt()));
coord->put("weather", event["weather"].toString()); coord->put("weather", event["weather"].toString());
coord->put("event_group_type", "coord_event_group"); coord->put("event_group_type", EventGroup::Coord);
coord->put("event_type", EventType::WeatherTrigger); coord->put("event_type", EventType::WeatherTrigger);
map->events["coord_event_group"].append(coord); map->events[EventGroup::Coord].append(coord);
} else { } else {
logError(QString("Map %1 coord_event %2 has invalid type '%3'. Must be 'trigger' or 'weather'.").arg(map->name).arg(i).arg(type)); logError(QString("Map %1 coord_event %2 has invalid type '%3'. Must be 'trigger' or 'weather'.").arg(map->name).arg(i).arg(type));
} }
} }
map->events["bg_event_group"].clear(); map->events[EventGroup::Bg].clear();
QJsonArray bgEventsArr = mapObj["bg_events"].toArray(); QJsonArray bgEventsArr = mapObj["bg_events"].toArray();
for (int i = 0; i < bgEventsArr.size(); i++) { for (int i = 0; i < bgEventsArr.size(); i++) {
QJsonObject event = bgEventsArr[i].toObject(); QJsonObject event = bgEventsArr[i].toObject();
@ -332,8 +332,8 @@ bool Project::loadMapData(Map* map) {
bg->put("elevation", QString::number(event["elevation"].toInt())); bg->put("elevation", QString::number(event["elevation"].toInt()));
bg->put("player_facing_direction", event["player_facing_dir"].toString()); bg->put("player_facing_direction", event["player_facing_dir"].toString());
bg->put("script_label", event["script"].toString()); bg->put("script_label", event["script"].toString());
bg->put("event_group_type", "bg_event_group"); bg->put("event_group_type", EventGroup::Bg);
map->events["bg_event_group"].append(bg); map->events[EventGroup::Bg].append(bg);
} else if (type == "hidden_item") { } else if (type == "hidden_item") {
Event *bg = new Event(event, EventType::HiddenItem); Event *bg = new Event(event, EventType::HiddenItem);
bg->put("map_name", map->name); bg->put("map_name", map->name);
@ -348,8 +348,8 @@ bool Project::loadMapData(Map* map) {
if (projectConfig.getHiddenItemRequiresItemfinderEnabled()) { if (projectConfig.getHiddenItemRequiresItemfinderEnabled()) {
bg->put("underfoot", event["underfoot"].toBool()); bg->put("underfoot", event["underfoot"].toBool());
} }
bg->put("event_group_type", "bg_event_group"); bg->put("event_group_type", EventGroup::Bg);
map->events["bg_event_group"].append(bg); map->events[EventGroup::Bg].append(bg);
} else if (type == "secret_base") { } else if (type == "secret_base") {
Event *bg = new Event(event, EventType::SecretBase); Event *bg = new Event(event, EventType::SecretBase);
bg->put("map_name", map->name); bg->put("map_name", map->name);
@ -357,8 +357,8 @@ bool Project::loadMapData(Map* map) {
bg->put("y", QString::number(event["y"].toInt())); bg->put("y", QString::number(event["y"].toInt()));
bg->put("elevation", QString::number(event["elevation"].toInt())); bg->put("elevation", QString::number(event["elevation"].toInt()));
bg->put("secret_base_id", event["secret_base_id"].toString()); bg->put("secret_base_id", event["secret_base_id"].toString());
bg->put("event_group_type", "bg_event_group"); bg->put("event_group_type", EventGroup::Bg);
map->events["bg_event_group"].append(bg); map->events[EventGroup::Bg].append(bg);
} else { } else {
logError(QString("Map %1 bg_event %2 has invalid type '%3'. Must be 'sign', 'hidden_item', or 'secret_base'.").arg(map->name).arg(i).arg(type)); logError(QString("Map %1 bg_event %2 has invalid type '%3'. Must be 'sign', 'hidden_item', or 'secret_base'.").arg(map->name).arg(i).arg(type));
} }
@ -861,8 +861,8 @@ void Project::saveHealLocationStruct(Map *map) {
} }
// set new location in healLocations list // set new location in healLocations list
if (map->events["heal_event_group"].length() > 0) { if (map->events[EventGroup::Heal].length() > 0) {
for (Event *healEvent : map->events["heal_event_group"]) { for (Event *healEvent : map->events[EventGroup::Heal]) {
HealLocation hl = HealLocation::fromEvent(healEvent); HealLocation hl = HealLocation::fromEvent(healEvent);
healLocations[hl.index - 1] = hl; healLocations[hl.index - 1] = hl;
} }
@ -1333,8 +1333,8 @@ void Project::saveMap(Map *map) {
if (map->sharedEventsMap.isEmpty()) { if (map->sharedEventsMap.isEmpty()) {
// Object events // Object events
OrderedJson::array objectEventsArr; OrderedJson::array objectEventsArr;
for (int i = 0; i < map->events["object_event_group"].length(); i++) { for (int i = 0; i < map->events[EventGroup::Object].length(); i++) {
Event *object_event = map->events["object_event_group"].value(i); Event *object_event = map->events[EventGroup::Object].value(i);
OrderedJson::object eventObj = object_event->buildObjectEventJSON(); OrderedJson::object eventObj = object_event->buildObjectEventJSON();
objectEventsArr.push_back(eventObj); objectEventsArr.push_back(eventObj);
} }
@ -1342,8 +1342,8 @@ void Project::saveMap(Map *map) {
// Warp events // Warp events
OrderedJson::array warpEventsArr; OrderedJson::array warpEventsArr;
for (int i = 0; i < map->events["warp_event_group"].length(); i++) { for (int i = 0; i < map->events[EventGroup::Warp].length(); i++) {
Event *warp_event = map->events["warp_event_group"].value(i); Event *warp_event = map->events[EventGroup::Warp].value(i);
OrderedJson::object warpObj = warp_event->buildWarpEventJSON(mapNamesToMapConstants); OrderedJson::object warpObj = warp_event->buildWarpEventJSON(mapNamesToMapConstants);
warpEventsArr.append(warpObj); warpEventsArr.append(warpObj);
} }
@ -1351,8 +1351,8 @@ void Project::saveMap(Map *map) {
// Coord events // Coord events
OrderedJson::array coordEventsArr; OrderedJson::array coordEventsArr;
for (int i = 0; i < map->events["coord_event_group"].length(); i++) { for (int i = 0; i < map->events[EventGroup::Coord].length(); i++) {
Event *event = map->events["coord_event_group"].value(i); Event *event = map->events[EventGroup::Coord].value(i);
QString event_type = event->get("event_type"); QString event_type = event->get("event_type");
if (event_type == EventType::Trigger) { if (event_type == EventType::Trigger) {
OrderedJson::object triggerObj = event->buildTriggerEventJSON(); OrderedJson::object triggerObj = event->buildTriggerEventJSON();
@ -1366,8 +1366,8 @@ void Project::saveMap(Map *map) {
// Bg Events // Bg Events
OrderedJson::array bgEventsArr; OrderedJson::array bgEventsArr;
for (int i = 0; i < map->events["bg_event_group"].length(); i++) { for (int i = 0; i < map->events[EventGroup::Bg].length(); i++) {
Event *event = map->events["bg_event_group"].value(i); Event *event = map->events[EventGroup::Bg].value(i);
QString event_type = event->get("event_type"); QString event_type = event->get("event_type");
if (event_type == EventType::Sign) { if (event_type == EventType::Sign) {
OrderedJson::object signObj = event->buildSignEventJSON(); OrderedJson::object signObj = event->buildSignEventJSON();
@ -2473,8 +2473,8 @@ bool Project::readSpeciesIconPaths() {
void Project::saveMapHealEvents(Map *map) { void Project::saveMapHealEvents(Map *map) {
// save heal event changes // save heal event changes
if (map->events["heal_event_group"].length() > 0) { if (map->events[EventGroup::Heal].length() > 0) {
for (Event *healEvent : map->events["heal_event_group"]) { for (Event *healEvent : map->events[EventGroup::Heal]) {
HealLocation hl = HealLocation::fromEvent(healEvent); HealLocation hl = HealLocation::fromEvent(healEvent);
healLocations[hl.index - 1] = hl; healLocations[hl.index - 1] = hl;
} }
@ -2483,11 +2483,11 @@ void Project::saveMapHealEvents(Map *map) {
} }
void Project::setNewMapEvents(Map *map) { void Project::setNewMapEvents(Map *map) {
map->events["object_event_group"].clear(); map->events[EventGroup::Object].clear();
map->events["warp_event_group"].clear(); map->events[EventGroup::Warp].clear();
map->events["heal_event_group"].clear(); map->events[EventGroup::Heal].clear();
map->events["coord_event_group"].clear(); map->events[EventGroup::Coord].clear();
map->events["bg_event_group"].clear(); map->events[EventGroup::Bg].clear();
} }
int Project::getNumTilesPrimary() int Project::getNumTilesPrimary()

View file

@ -371,11 +371,11 @@ QPixmap MapImageExporter::getFormattedMapPixmap(Map *map, bool ignoreBorder) {
for (Event *event : events) { for (Event *event : events) {
editor->project->setEventPixmap(event); editor->project->setEventPixmap(event);
QString group = event->get("event_group_type"); QString group = event->get("event_group_type");
if ((showObjects && group == "object_event_group") if ((showObjects && group == EventGroup::Object)
|| (showWarps && group == "warp_event_group") || (showWarps && group == EventGroup::Warp)
|| (showBGs && group == "bg_event_group") || (showBGs && group == EventGroup::Bg)
|| (showTriggers && group == "coord_event_group") || (showTriggers && group == EventGroup::Coord)
|| (showHealSpots && group == "heal_event_group")) || (showHealSpots && group == EventGroup::Heal))
eventPainter.drawImage(QPoint(event->getPixelX(), event->getPixelY()), event->pixmap.toImage()); eventPainter.drawImage(QPoint(event->getPixelX(), event->getPixelY()), event->pixmap.toImage());
} }
eventPainter.end(); eventPainter.end();