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 allowEscapeRope;
|
||||
QString battle_scene;
|
||||
QString sharedEventsMap = "";
|
||||
QString sharedScriptsMap = "";
|
||||
MapLayout *layout;
|
||||
bool isPersistedToFile = 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->allowRunning = QString::number(mapObj["allow_running"].toBool());
|
||||
}
|
||||
map->sharedEventsMap = mapObj["shared_events_map"].toString();
|
||||
map->sharedScriptsMap = mapObj["shared_scripts_map"].toString();
|
||||
|
||||
// Events
|
||||
map->events["object_event_group"].clear();
|
||||
|
@ -893,56 +895,64 @@ void Project::saveMap(Map *map) {
|
|||
mapObj["connections"] = QJsonValue::Null;
|
||||
}
|
||||
|
||||
// Object events
|
||||
QJsonArray objectEventsArr;
|
||||
for (int i = 0; i < map->events["object_event_group"].length(); i++) {
|
||||
Event *object_event = map->events["object_event_group"].value(i);
|
||||
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);
|
||||
if (map->sharedEventsMap.isEmpty()) {
|
||||
// Object events
|
||||
QJsonArray objectEventsArr;
|
||||
for (int i = 0; i < map->events["object_event_group"].length(); i++) {
|
||||
Event *object_event = map->events["object_event_group"].value(i);
|
||||
QJsonObject eventObj = object_event->buildObjectEventJSON();
|
||||
objectEventsArr.append(eventObj);
|
||||
}
|
||||
}
|
||||
mapObj["coord_events"] = coordEventsArr;
|
||||
mapObj["object_events"] = objectEventsArr;
|
||||
|
||||
// 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);
|
||||
// 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["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);
|
||||
mapFile.write(mapDoc.toJson());
|
||||
|
|
Loading…
Reference in a new issue