Prepopulate more dropdowns, and support new macro formats
This commit is contained in:
parent
52679eb53f
commit
8930b2c01b
4 changed files with 73 additions and 24 deletions
11
event.cpp
11
event.cpp
|
@ -43,7 +43,7 @@ Event* Event::createNewObjectEvent()
|
||||||
event->put("event_group_type", "object_event_group");
|
event->put("event_group_type", "object_event_group");
|
||||||
event->put("event_type", EventType::Object);
|
event->put("event_type", EventType::Object);
|
||||||
event->put("sprite", "EVENT_OBJ_GFX_BOY_1");
|
event->put("sprite", "EVENT_OBJ_GFX_BOY_1");
|
||||||
event->put("behavior", "1");
|
event->put("movement_type", "1");
|
||||||
event->put("radius_x", 0);
|
event->put("radius_x", 0);
|
||||||
event->put("radius_y", 0);
|
event->put("radius_y", 0);
|
||||||
event->put("script_label", "NULL");
|
event->put("script_label", "NULL");
|
||||||
|
@ -109,7 +109,7 @@ Event* Event::createNewSecretBaseEvent()
|
||||||
Event *event = new Event;
|
Event *event = new Event;
|
||||||
event->put("event_group_type", "bg_event_group");
|
event->put("event_group_type", "bg_event_group");
|
||||||
event->put("event_type", EventType::SecretBase);
|
event->put("event_type", EventType::SecretBase);
|
||||||
event->put("secret_base_map", "SECRET_BASE_RED_CAVE2_1");
|
event->put("secret_base_id", "SECRET_BASE_RED_CAVE2_1");
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ QString Event::buildObjectEventMacro(int item_index)
|
||||||
text += QString(", %1").arg(x);
|
text += QString(", %1").arg(x);
|
||||||
text += QString(", %1").arg(y);
|
text += QString(", %1").arg(y);
|
||||||
text += QString(", %1").arg(this->get("elevation"));
|
text += QString(", %1").arg(this->get("elevation"));
|
||||||
text += QString(", %1").arg(this->get("behavior"));
|
text += QString(", %1").arg(this->get("movement_type"));
|
||||||
text += QString(", %1").arg(radius_x);
|
text += QString(", %1").arg(radius_x);
|
||||||
text += QString(", %1").arg(radius_y);
|
text += QString(", %1").arg(radius_y);
|
||||||
text += QString(", %1").arg(this->get("trainer_see_type"));
|
text += QString(", %1").arg(this->get("trainer_see_type"));
|
||||||
|
@ -156,10 +156,8 @@ QString Event::buildCoordScriptEventMacro()
|
||||||
text += QString("\tcoord_event %1").arg(this->get("x"));
|
text += QString("\tcoord_event %1").arg(this->get("x"));
|
||||||
text += QString(", %1").arg(this->get("y"));
|
text += QString(", %1").arg(this->get("y"));
|
||||||
text += QString(", %1").arg(this->get("elevation"));
|
text += QString(", %1").arg(this->get("elevation"));
|
||||||
text += QString(", 0");
|
|
||||||
text += QString(", %1").arg(this->get("script_var"));
|
text += QString(", %1").arg(this->get("script_var"));
|
||||||
text += QString(", %1").arg(this->get("script_var_value"));
|
text += QString(", %1").arg(this->get("script_var_value"));
|
||||||
text += QString(", 0");
|
|
||||||
text += QString(", %1").arg(this->get("script_label"));
|
text += QString(", %1").arg(this->get("script_label"));
|
||||||
text += "\n";
|
text += "\n";
|
||||||
return text;
|
return text;
|
||||||
|
@ -183,7 +181,6 @@ QString Event::buildSignEventMacro()
|
||||||
text += QString(", %1").arg(this->get("y"));
|
text += QString(", %1").arg(this->get("y"));
|
||||||
text += QString(", %1").arg(this->get("elevation"));
|
text += QString(", %1").arg(this->get("elevation"));
|
||||||
text += QString(", %1").arg(this->get("player_facing_direction"));
|
text += QString(", %1").arg(this->get("player_facing_direction"));
|
||||||
text += QString(", 0");
|
|
||||||
text += QString(", %1").arg(this->get("script_label"));
|
text += QString(", %1").arg(this->get("script_label"));
|
||||||
text += "\n";
|
text += "\n";
|
||||||
return text;
|
return text;
|
||||||
|
@ -207,7 +204,7 @@ QString Event::buildSecretBaseEventMacro()
|
||||||
text += QString("\tbg_secret_base_event %1").arg(this->get("x"));
|
text += QString("\tbg_secret_base_event %1").arg(this->get("x"));
|
||||||
text += QString(", %1").arg(this->get("y"));
|
text += QString(", %1").arg(this->get("y"));
|
||||||
text += QString(", %1").arg(this->get("elevation"));
|
text += QString(", %1").arg(this->get("elevation"));
|
||||||
text += QString(", %1").arg(this->get("secret_base_map"));
|
text += QString(", %1").arg(this->get("secret_base_id"));
|
||||||
text += "\n";
|
text += "\n";
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
|
@ -313,6 +313,10 @@ void MainWindow::loadDataStructures() {
|
||||||
project->readItemNames();
|
project->readItemNames();
|
||||||
project->readFlagNames();
|
project->readFlagNames();
|
||||||
project->readVarNames();
|
project->readVarNames();
|
||||||
|
project->readMovementTypes();
|
||||||
|
project->readCoordEventWeatherNames();
|
||||||
|
project->readSecretBaseIds();
|
||||||
|
project->readBgEventFacingDirections();
|
||||||
project->readMapsWithConnections();
|
project->readMapsWithConnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -598,7 +602,7 @@ void MainWindow::updateSelectedObjects() {
|
||||||
field_labels["script_label"] = "Script";
|
field_labels["script_label"] = "Script";
|
||||||
field_labels["event_flag"] = "Event Flag";
|
field_labels["event_flag"] = "Event Flag";
|
||||||
field_labels["replacement"] = "Replacement";
|
field_labels["replacement"] = "Replacement";
|
||||||
field_labels["behavior"] = "Behavior";
|
field_labels["movement_type"] = "Movement";
|
||||||
field_labels["radius_x"] = "Movement Radius X";
|
field_labels["radius_x"] = "Movement Radius X";
|
||||||
field_labels["radius_y"] = "Movement Radius Y";
|
field_labels["radius_y"] = "Movement Radius Y";
|
||||||
field_labels["trainer_see_type"] = "Trainer See Type";
|
field_labels["trainer_see_type"] = "Trainer See Type";
|
||||||
|
@ -613,7 +617,7 @@ void MainWindow::updateSelectedObjects() {
|
||||||
field_labels["item_unknown6"] = "Unknown 6";
|
field_labels["item_unknown6"] = "Unknown 6";
|
||||||
field_labels["weather"] = "Weather";
|
field_labels["weather"] = "Weather";
|
||||||
field_labels["flag"] = "Flag";
|
field_labels["flag"] = "Flag";
|
||||||
field_labels["secret_base_map"] = "Secret Base Map";
|
field_labels["secret_base_id"] = "Secret Base Id";
|
||||||
|
|
||||||
QStringList fields;
|
QStringList fields;
|
||||||
|
|
||||||
|
@ -634,7 +638,7 @@ void MainWindow::updateSelectedObjects() {
|
||||||
//connect(item, SIGNAL(scriptChanged(QString)), frame->ui->comboBox_script, SLOT(setValue(QString)));
|
//connect(item, SIGNAL(scriptChanged(QString)), frame->ui->comboBox_script, SLOT(setValue(QString)));
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fields << "behavior";
|
fields << "movement_type";
|
||||||
fields << "radius_x";
|
fields << "radius_x";
|
||||||
fields << "radius_y";
|
fields << "radius_y";
|
||||||
fields << "script_label";
|
fields << "script_label";
|
||||||
|
@ -664,7 +668,7 @@ void MainWindow::updateSelectedObjects() {
|
||||||
fields << "flag";
|
fields << "flag";
|
||||||
}
|
}
|
||||||
else if (event_type == EventType::SecretBase) {
|
else if (event_type == EventType::SecretBase) {
|
||||||
fields << "secret_base_map";
|
fields << "secret_base_id";
|
||||||
}
|
}
|
||||||
|
|
||||||
for (QString key : fields) {
|
for (QString key : fields) {
|
||||||
|
@ -685,7 +689,7 @@ void MainWindow::updateSelectedObjects() {
|
||||||
combo->addItem(value);
|
combo->addItem(value);
|
||||||
}
|
}
|
||||||
combo->addItems(*editor->project->itemNames);
|
combo->addItems(*editor->project->itemNames);
|
||||||
} else if (key == "flag") {
|
} else if (key == "flag" || key == "event_flag") {
|
||||||
if (!editor->project->flagNames->contains(value)) {
|
if (!editor->project->flagNames->contains(value)) {
|
||||||
combo->addItem(value);
|
combo->addItem(value);
|
||||||
}
|
}
|
||||||
|
@ -695,6 +699,26 @@ void MainWindow::updateSelectedObjects() {
|
||||||
combo->addItem(value);
|
combo->addItem(value);
|
||||||
}
|
}
|
||||||
combo->addItems(*editor->project->varNames);
|
combo->addItems(*editor->project->varNames);
|
||||||
|
} else if (key == "movement_type") {
|
||||||
|
if (!editor->project->movementTypes->contains(value)) {
|
||||||
|
combo->addItem(value);
|
||||||
|
}
|
||||||
|
combo->addItems(*editor->project->movementTypes);
|
||||||
|
} else if (key == "weather") {
|
||||||
|
if (!editor->project->coordEventWeatherNames->contains(value)) {
|
||||||
|
combo->addItem(value);
|
||||||
|
}
|
||||||
|
combo->addItems(*editor->project->coordEventWeatherNames);
|
||||||
|
} else if (key == "secret_base_id") {
|
||||||
|
if (!editor->project->secretBaseIds->contains(value)) {
|
||||||
|
combo->addItem(value);
|
||||||
|
}
|
||||||
|
combo->addItems(*editor->project->secretBaseIds);
|
||||||
|
} else if (key == "player_facing_direction") {
|
||||||
|
if (!editor->project->bgEventFacingDirections->contains(value)) {
|
||||||
|
combo->addItem(value);
|
||||||
|
}
|
||||||
|
combo->addItems(*editor->project->bgEventFacingDirections);
|
||||||
} else {
|
} else {
|
||||||
combo->addItem(value);
|
combo->addItem(value);
|
||||||
}
|
}
|
||||||
|
|
44
project.cpp
44
project.cpp
|
@ -20,6 +20,10 @@ Project::Project()
|
||||||
itemNames = new QStringList;
|
itemNames = new QStringList;
|
||||||
flagNames = new QStringList;
|
flagNames = new QStringList;
|
||||||
varNames = new QStringList;
|
varNames = new QStringList;
|
||||||
|
movementTypes = new QStringList;
|
||||||
|
coordEventWeatherNames = new QStringList;
|
||||||
|
secretBaseIds = new QStringList;
|
||||||
|
bgEventFacingDirections = new QStringList;
|
||||||
map_cache = new QMap<QString, Map*>;
|
map_cache = new QMap<QString, Map*>;
|
||||||
mapConstantsToMapNames = new QMap<QString, QString>;
|
mapConstantsToMapNames = new QMap<QString, QString>;
|
||||||
mapNamesToMapConstants = new QMap<QString, QString>;
|
mapNamesToMapConstants = new QMap<QString, QString>;
|
||||||
|
@ -1086,6 +1090,30 @@ void Project::readVarNames() {
|
||||||
readCDefinesSorted(filepath, prefixes, varNames);
|
readCDefinesSorted(filepath, prefixes, varNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Project::readMovementTypes() {
|
||||||
|
QString filepath = root + "/include/constants/event_object_movement_constants.h";
|
||||||
|
QStringList prefixes = (QStringList() << "MOVEMENT_TYPE_");
|
||||||
|
readCDefinesSorted(filepath, prefixes, movementTypes);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Project::readCoordEventWeatherNames() {
|
||||||
|
QString filepath = root + "/include/constants/weather.h";
|
||||||
|
QStringList prefixes = (QStringList() << "COORD_EVENT_WEATHER_");
|
||||||
|
readCDefinesSorted(filepath, prefixes, coordEventWeatherNames);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Project::readSecretBaseIds() {
|
||||||
|
QString filepath = root + "/include/constants/secret_bases.h";
|
||||||
|
QStringList prefixes = (QStringList() << "SECRET_BASE_");
|
||||||
|
readCDefinesSorted(filepath, prefixes, secretBaseIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Project::readBgEventFacingDirections() {
|
||||||
|
QString filepath = root + "/include/constants/bg_event_constants.h";
|
||||||
|
QStringList prefixes = (QStringList() << "BG_EVENT_PLAYER_FACING_");
|
||||||
|
readCDefinesSorted(filepath, prefixes, bgEventFacingDirections);
|
||||||
|
}
|
||||||
|
|
||||||
void Project::readCDefinesSorted(QString filepath, QStringList prefixes, QStringList* definesToSet) {
|
void Project::readCDefinesSorted(QString filepath, QStringList prefixes, QStringList* definesToSet) {
|
||||||
QString text = readTextFile(filepath);
|
QString text = readTextFile(filepath);
|
||||||
if (!text.isNull()) {
|
if (!text.isNull()) {
|
||||||
|
@ -1098,6 +1126,8 @@ void Project::readCDefinesSorted(QString filepath, QStringList prefixes, QString
|
||||||
definesInverse.insert(defines[defineName], defineName);
|
definesInverse.insert(defines[defineName], defineName);
|
||||||
}
|
}
|
||||||
*definesToSet = definesInverse.values();
|
*definesToSet = definesInverse.values();
|
||||||
|
} else {
|
||||||
|
qDebug() << "Failed to read C defines file: " << filepath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1319,7 +1349,7 @@ void Project::readMapEvents(Map *map) {
|
||||||
object->put("x", command.value(i++).toInt(nullptr, 0));
|
object->put("x", command.value(i++).toInt(nullptr, 0));
|
||||||
object->put("y", command.value(i++).toInt(nullptr, 0));
|
object->put("y", command.value(i++).toInt(nullptr, 0));
|
||||||
object->put("elevation", command.value(i++));
|
object->put("elevation", command.value(i++));
|
||||||
object->put("behavior", command.value(i++));
|
object->put("movement_type", command.value(i++));
|
||||||
object->put("radius_x", command.value(i++).toInt(nullptr, 0));
|
object->put("radius_x", command.value(i++).toInt(nullptr, 0));
|
||||||
object->put("radius_y", command.value(i++).toInt(nullptr, 0));
|
object->put("radius_y", command.value(i++).toInt(nullptr, 0));
|
||||||
object->put("trainer_see_type", command.value(i++));
|
object->put("trainer_see_type", command.value(i++));
|
||||||
|
@ -1363,12 +1393,6 @@ void Project::readMapEvents(Map *map) {
|
||||||
if (command.value(0) == "coord_event") {
|
if (command.value(0) == "coord_event") {
|
||||||
Event *coord = new Event;
|
Event *coord = new Event;
|
||||||
coord->put("map_name", map->name);
|
coord->put("map_name", map->name);
|
||||||
bool old_macro = false;
|
|
||||||
if (command.length() >= 9) {
|
|
||||||
command.removeAt(7);
|
|
||||||
command.removeAt(4);
|
|
||||||
old_macro = true;
|
|
||||||
}
|
|
||||||
int i = 1;
|
int i = 1;
|
||||||
coord->put("x", command.value(i++));
|
coord->put("x", command.value(i++));
|
||||||
coord->put("y", command.value(i++));
|
coord->put("y", command.value(i++));
|
||||||
|
@ -1376,9 +1400,6 @@ void Project::readMapEvents(Map *map) {
|
||||||
coord->put("script_var", command.value(i++));
|
coord->put("script_var", command.value(i++));
|
||||||
coord->put("script_var_value", command.value(i++));
|
coord->put("script_var_value", command.value(i++));
|
||||||
coord->put("script_label", command.value(i++));
|
coord->put("script_label", command.value(i++));
|
||||||
//coord_unknown3
|
|
||||||
//coord_unknown4
|
|
||||||
|
|
||||||
coord->put("event_group_type", "coord_event_group");
|
coord->put("event_group_type", "coord_event_group");
|
||||||
coord->put("event_type", EventType::CoordScript);
|
coord->put("event_type", EventType::CoordScript);
|
||||||
map->events["coord_event_group"].append(coord);
|
map->events["coord_event_group"].append(coord);
|
||||||
|
@ -1407,7 +1428,6 @@ void Project::readMapEvents(Map *map) {
|
||||||
bg->put("y", command.value(i++));
|
bg->put("y", command.value(i++));
|
||||||
bg->put("elevation", command.value(i++));
|
bg->put("elevation", command.value(i++));
|
||||||
bg->put("player_facing_direction", command.value(i++));
|
bg->put("player_facing_direction", command.value(i++));
|
||||||
i++;
|
|
||||||
bg->put("script_label", command.value(i++));
|
bg->put("script_label", command.value(i++));
|
||||||
//sign_unknown7
|
//sign_unknown7
|
||||||
bg->put("event_group_type", "bg_event_group");
|
bg->put("event_group_type", "bg_event_group");
|
||||||
|
@ -1432,7 +1452,7 @@ void Project::readMapEvents(Map *map) {
|
||||||
bg->put("x", command.value(i++));
|
bg->put("x", command.value(i++));
|
||||||
bg->put("y", command.value(i++));
|
bg->put("y", command.value(i++));
|
||||||
bg->put("elevation", command.value(i++));
|
bg->put("elevation", command.value(i++));
|
||||||
bg->put("secret_base_map", command.value(i++));
|
bg->put("secret_base_id", command.value(i++));
|
||||||
bg->put("event_group_type", "bg_event_group");
|
bg->put("event_group_type", "bg_event_group");
|
||||||
bg->put("event_type", EventType::SecretBase);
|
bg->put("event_type", EventType::SecretBase);
|
||||||
map->events["bg_event_group"].append(bg);
|
map->events["bg_event_group"].append(bg);
|
||||||
|
|
|
@ -26,6 +26,10 @@ public:
|
||||||
QStringList *itemNames = NULL;
|
QStringList *itemNames = NULL;
|
||||||
QStringList *flagNames = NULL;
|
QStringList *flagNames = NULL;
|
||||||
QStringList *varNames = NULL;
|
QStringList *varNames = NULL;
|
||||||
|
QStringList *movementTypes = NULL;
|
||||||
|
QStringList *coordEventWeatherNames = NULL;
|
||||||
|
QStringList *secretBaseIds = NULL;
|
||||||
|
QStringList *bgEventFacingDirections = NULL;
|
||||||
QStringList mapsWithConnections;
|
QStringList mapsWithConnections;
|
||||||
|
|
||||||
QMap<QString, Map*> *map_cache;
|
QMap<QString, Map*> *map_cache;
|
||||||
|
@ -81,6 +85,10 @@ public:
|
||||||
void readItemNames();
|
void readItemNames();
|
||||||
void readFlagNames();
|
void readFlagNames();
|
||||||
void readVarNames();
|
void readVarNames();
|
||||||
|
void readMovementTypes();
|
||||||
|
void readCoordEventWeatherNames();
|
||||||
|
void readSecretBaseIds();
|
||||||
|
void readBgEventFacingDirections();
|
||||||
|
|
||||||
void loadEventPixmaps(QList<Event*> objects);
|
void loadEventPixmaps(QList<Event*> objects);
|
||||||
QMap<QString, int> getEventObjGfxConstants();
|
QMap<QString, int> getEventObjGfxConstants();
|
||||||
|
|
Loading…
Reference in a new issue