Add event group constants
This commit is contained in:
parent
9963e4c8aa
commit
31f400e2c9
5 changed files with 98 additions and 73 deletions
|
@ -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());
|
||||||
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue