Respect shared_events_map and shared_scripts_map
This commit is contained in:
parent
94686e6f0a
commit
d70145d89a
2 changed files with 58 additions and 46 deletions
|
@ -36,6 +36,8 @@ public:
|
||||||
QString allowBiking;
|
QString allowBiking;
|
||||||
QString allowEscapeRope;
|
QString allowEscapeRope;
|
||||||
QString battle_scene;
|
QString battle_scene;
|
||||||
|
QString sharedEventsMap = "";
|
||||||
|
QString sharedScriptsMap = "";
|
||||||
MapLayout *layout;
|
MapLayout *layout;
|
||||||
bool isPersistedToFile = true;
|
bool isPersistedToFile = true;
|
||||||
bool needsLayoutDir = true;
|
bool needsLayoutDir = true;
|
||||||
|
|
102
src/project.cpp
102
src/project.cpp
|
@ -158,6 +158,8 @@ bool Project::loadMapData(Map* map) {
|
||||||
map->allowEscapeRope = QString::number(mapObj["allow_escape_rope"].toBool());
|
map->allowEscapeRope = QString::number(mapObj["allow_escape_rope"].toBool());
|
||||||
map->allowRunning = QString::number(mapObj["allow_running"].toBool());
|
map->allowRunning = QString::number(mapObj["allow_running"].toBool());
|
||||||
}
|
}
|
||||||
|
map->sharedEventsMap = mapObj["shared_events_map"].toString();
|
||||||
|
map->sharedScriptsMap = mapObj["shared_scripts_map"].toString();
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
map->events["object_event_group"].clear();
|
map->events["object_event_group"].clear();
|
||||||
|
@ -893,56 +895,64 @@ void Project::saveMap(Map *map) {
|
||||||
mapObj["connections"] = QJsonValue::Null;
|
mapObj["connections"] = QJsonValue::Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Object events
|
if (map->sharedEventsMap.isEmpty()) {
|
||||||
QJsonArray objectEventsArr;
|
// Object events
|
||||||
for (int i = 0; i < map->events["object_event_group"].length(); i++) {
|
QJsonArray objectEventsArr;
|
||||||
Event *object_event = map->events["object_event_group"].value(i);
|
for (int i = 0; i < map->events["object_event_group"].length(); i++) {
|
||||||
QJsonObject eventObj = object_event->buildObjectEventJSON();
|
Event *object_event = map->events["object_event_group"].value(i);
|
||||||
objectEventsArr.append(eventObj);
|
QJsonObject eventObj = object_event->buildObjectEventJSON();
|
||||||
}
|
objectEventsArr.append(eventObj);
|
||||||
mapObj["object_events"] = objectEventsArr;
|
|
||||||
|
|
||||||
// Warp events
|
|
||||||
QJsonArray warpEventsArr;
|
|
||||||
for (int i = 0; i < map->events["warp_event_group"].length(); i++) {
|
|
||||||
Event *warp_event = map->events["warp_event_group"].value(i);
|
|
||||||
QJsonObject warpObj = warp_event->buildWarpEventJSON(mapNamesToMapConstants);
|
|
||||||
warpEventsArr.append(warpObj);
|
|
||||||
}
|
|
||||||
mapObj["warp_events"] = warpEventsArr;
|
|
||||||
|
|
||||||
// Coord events
|
|
||||||
QJsonArray coordEventsArr;
|
|
||||||
for (int i = 0; i < map->events["coord_event_group"].length(); i++) {
|
|
||||||
Event *event = map->events["coord_event_group"].value(i);
|
|
||||||
QString event_type = event->get("event_type");
|
|
||||||
if (event_type == EventType::Trigger) {
|
|
||||||
QJsonObject triggerObj = event->buildTriggerEventJSON();
|
|
||||||
coordEventsArr.append(triggerObj);
|
|
||||||
} else if (event_type == EventType::WeatherTrigger) {
|
|
||||||
QJsonObject weatherObj = event->buildWeatherTriggerEventJSON();
|
|
||||||
coordEventsArr.append(weatherObj);
|
|
||||||
}
|
}
|
||||||
}
|
mapObj["object_events"] = objectEventsArr;
|
||||||
mapObj["coord_events"] = coordEventsArr;
|
|
||||||
|
|
||||||
// Bg Events
|
// Warp events
|
||||||
QJsonArray bgEventsArr;
|
QJsonArray warpEventsArr;
|
||||||
for (int i = 0; i < map->events["bg_event_group"].length(); i++) {
|
for (int i = 0; i < map->events["warp_event_group"].length(); i++) {
|
||||||
Event *event = map->events["bg_event_group"].value(i);
|
Event *warp_event = map->events["warp_event_group"].value(i);
|
||||||
QString event_type = event->get("event_type");
|
QJsonObject warpObj = warp_event->buildWarpEventJSON(mapNamesToMapConstants);
|
||||||
if (event_type == EventType::Sign) {
|
warpEventsArr.append(warpObj);
|
||||||
QJsonObject signObj = event->buildSignEventJSON();
|
|
||||||
bgEventsArr.append(signObj);
|
|
||||||
} else if (event_type == EventType::HiddenItem) {
|
|
||||||
QJsonObject hiddenItemObj = event->buildHiddenItemEventJSON();
|
|
||||||
bgEventsArr.append(hiddenItemObj);
|
|
||||||
} else if (event_type == EventType::SecretBase) {
|
|
||||||
QJsonObject secretBaseObj = event->buildSecretBaseEventJSON();
|
|
||||||
bgEventsArr.append(secretBaseObj);
|
|
||||||
}
|
}
|
||||||
|
mapObj["warp_events"] = warpEventsArr;
|
||||||
|
|
||||||
|
// Coord events
|
||||||
|
QJsonArray coordEventsArr;
|
||||||
|
for (int i = 0; i < map->events["coord_event_group"].length(); i++) {
|
||||||
|
Event *event = map->events["coord_event_group"].value(i);
|
||||||
|
QString event_type = event->get("event_type");
|
||||||
|
if (event_type == EventType::Trigger) {
|
||||||
|
QJsonObject triggerObj = event->buildTriggerEventJSON();
|
||||||
|
coordEventsArr.append(triggerObj);
|
||||||
|
} else if (event_type == EventType::WeatherTrigger) {
|
||||||
|
QJsonObject weatherObj = event->buildWeatherTriggerEventJSON();
|
||||||
|
coordEventsArr.append(weatherObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mapObj["coord_events"] = coordEventsArr;
|
||||||
|
|
||||||
|
// Bg Events
|
||||||
|
QJsonArray bgEventsArr;
|
||||||
|
for (int i = 0; i < map->events["bg_event_group"].length(); i++) {
|
||||||
|
Event *event = map->events["bg_event_group"].value(i);
|
||||||
|
QString event_type = event->get("event_type");
|
||||||
|
if (event_type == EventType::Sign) {
|
||||||
|
QJsonObject signObj = event->buildSignEventJSON();
|
||||||
|
bgEventsArr.append(signObj);
|
||||||
|
} else if (event_type == EventType::HiddenItem) {
|
||||||
|
QJsonObject hiddenItemObj = event->buildHiddenItemEventJSON();
|
||||||
|
bgEventsArr.append(hiddenItemObj);
|
||||||
|
} else if (event_type == EventType::SecretBase) {
|
||||||
|
QJsonObject secretBaseObj = event->buildSecretBaseEventJSON();
|
||||||
|
bgEventsArr.append(secretBaseObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mapObj["bg_events"] = bgEventsArr;
|
||||||
|
} else {
|
||||||
|
mapObj["shared_events_map"] = map->sharedEventsMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!map->sharedScriptsMap.isEmpty()) {
|
||||||
|
mapObj["shared_scripts_map"] = map->sharedScriptsMap;
|
||||||
}
|
}
|
||||||
mapObj["bg_events"] = bgEventsArr;
|
|
||||||
|
|
||||||
QJsonDocument mapDoc(mapObj);
|
QJsonDocument mapDoc(mapObj);
|
||||||
mapFile.write(mapDoc.toJson());
|
mapFile.write(mapDoc.toJson());
|
||||||
|
|
Loading…
Reference in a new issue