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_type", EventType::Object);
|
||||
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_y", 0);
|
||||
event->put("script_label", "NULL");
|
||||
|
@ -109,7 +109,7 @@ Event* Event::createNewSecretBaseEvent()
|
|||
Event *event = new Event;
|
||||
event->put("event_group_type", "bg_event_group");
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,7 @@ QString Event::buildObjectEventMacro(int item_index)
|
|||
text += QString(", %1").arg(x);
|
||||
text += QString(", %1").arg(y);
|
||||
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_y);
|
||||
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(", %1").arg(this->get("y"));
|
||||
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_value"));
|
||||
text += QString(", 0");
|
||||
text += QString(", %1").arg(this->get("script_label"));
|
||||
text += "\n";
|
||||
return text;
|
||||
|
@ -183,7 +181,6 @@ QString Event::buildSignEventMacro()
|
|||
text += QString(", %1").arg(this->get("y"));
|
||||
text += QString(", %1").arg(this->get("elevation"));
|
||||
text += QString(", %1").arg(this->get("player_facing_direction"));
|
||||
text += QString(", 0");
|
||||
text += QString(", %1").arg(this->get("script_label"));
|
||||
text += "\n";
|
||||
return text;
|
||||
|
@ -207,7 +204,7 @@ QString Event::buildSecretBaseEventMacro()
|
|||
text += QString("\tbg_secret_base_event %1").arg(this->get("x"));
|
||||
text += QString(", %1").arg(this->get("y"));
|
||||
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";
|
||||
return text;
|
||||
}
|
||||
|
|
|
@ -313,6 +313,10 @@ void MainWindow::loadDataStructures() {
|
|||
project->readItemNames();
|
||||
project->readFlagNames();
|
||||
project->readVarNames();
|
||||
project->readMovementTypes();
|
||||
project->readCoordEventWeatherNames();
|
||||
project->readSecretBaseIds();
|
||||
project->readBgEventFacingDirections();
|
||||
project->readMapsWithConnections();
|
||||
}
|
||||
|
||||
|
@ -598,7 +602,7 @@ void MainWindow::updateSelectedObjects() {
|
|||
field_labels["script_label"] = "Script";
|
||||
field_labels["event_flag"] = "Event Flag";
|
||||
field_labels["replacement"] = "Replacement";
|
||||
field_labels["behavior"] = "Behavior";
|
||||
field_labels["movement_type"] = "Movement";
|
||||
field_labels["radius_x"] = "Movement Radius X";
|
||||
field_labels["radius_y"] = "Movement Radius Y";
|
||||
field_labels["trainer_see_type"] = "Trainer See Type";
|
||||
|
@ -613,7 +617,7 @@ void MainWindow::updateSelectedObjects() {
|
|||
field_labels["item_unknown6"] = "Unknown 6";
|
||||
field_labels["weather"] = "Weather";
|
||||
field_labels["flag"] = "Flag";
|
||||
field_labels["secret_base_map"] = "Secret Base Map";
|
||||
field_labels["secret_base_id"] = "Secret Base Id";
|
||||
|
||||
QStringList fields;
|
||||
|
||||
|
@ -634,7 +638,7 @@ void MainWindow::updateSelectedObjects() {
|
|||
//connect(item, SIGNAL(scriptChanged(QString)), frame->ui->comboBox_script, SLOT(setValue(QString)));
|
||||
*/
|
||||
|
||||
fields << "behavior";
|
||||
fields << "movement_type";
|
||||
fields << "radius_x";
|
||||
fields << "radius_y";
|
||||
fields << "script_label";
|
||||
|
@ -664,7 +668,7 @@ void MainWindow::updateSelectedObjects() {
|
|||
fields << "flag";
|
||||
}
|
||||
else if (event_type == EventType::SecretBase) {
|
||||
fields << "secret_base_map";
|
||||
fields << "secret_base_id";
|
||||
}
|
||||
|
||||
for (QString key : fields) {
|
||||
|
@ -685,7 +689,7 @@ void MainWindow::updateSelectedObjects() {
|
|||
combo->addItem(value);
|
||||
}
|
||||
combo->addItems(*editor->project->itemNames);
|
||||
} else if (key == "flag") {
|
||||
} else if (key == "flag" || key == "event_flag") {
|
||||
if (!editor->project->flagNames->contains(value)) {
|
||||
combo->addItem(value);
|
||||
}
|
||||
|
@ -695,6 +699,26 @@ void MainWindow::updateSelectedObjects() {
|
|||
combo->addItem(value);
|
||||
}
|
||||
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 {
|
||||
combo->addItem(value);
|
||||
}
|
||||
|
|
44
project.cpp
44
project.cpp
|
@ -20,6 +20,10 @@ Project::Project()
|
|||
itemNames = new QStringList;
|
||||
flagNames = new QStringList;
|
||||
varNames = new QStringList;
|
||||
movementTypes = new QStringList;
|
||||
coordEventWeatherNames = new QStringList;
|
||||
secretBaseIds = new QStringList;
|
||||
bgEventFacingDirections = new QStringList;
|
||||
map_cache = new QMap<QString, Map*>;
|
||||
mapConstantsToMapNames = new QMap<QString, QString>;
|
||||
mapNamesToMapConstants = new QMap<QString, QString>;
|
||||
|
@ -1086,6 +1090,30 @@ void Project::readVarNames() {
|
|||
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) {
|
||||
QString text = readTextFile(filepath);
|
||||
if (!text.isNull()) {
|
||||
|
@ -1098,6 +1126,8 @@ void Project::readCDefinesSorted(QString filepath, QStringList prefixes, QString
|
|||
definesInverse.insert(defines[defineName], defineName);
|
||||
}
|
||||
*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("y", command.value(i++).toInt(nullptr, 0));
|
||||
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_y", command.value(i++).toInt(nullptr, 0));
|
||||
object->put("trainer_see_type", command.value(i++));
|
||||
|
@ -1363,12 +1393,6 @@ void Project::readMapEvents(Map *map) {
|
|||
if (command.value(0) == "coord_event") {
|
||||
Event *coord = new Event;
|
||||
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;
|
||||
coord->put("x", 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_value", 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_type", EventType::CoordScript);
|
||||
map->events["coord_event_group"].append(coord);
|
||||
|
@ -1407,7 +1428,6 @@ void Project::readMapEvents(Map *map) {
|
|||
bg->put("y", command.value(i++));
|
||||
bg->put("elevation", command.value(i++));
|
||||
bg->put("player_facing_direction", command.value(i++));
|
||||
i++;
|
||||
bg->put("script_label", command.value(i++));
|
||||
//sign_unknown7
|
||||
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("y", 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_type", EventType::SecretBase);
|
||||
map->events["bg_event_group"].append(bg);
|
||||
|
|
|
@ -26,6 +26,10 @@ public:
|
|||
QStringList *itemNames = NULL;
|
||||
QStringList *flagNames = NULL;
|
||||
QStringList *varNames = NULL;
|
||||
QStringList *movementTypes = NULL;
|
||||
QStringList *coordEventWeatherNames = NULL;
|
||||
QStringList *secretBaseIds = NULL;
|
||||
QStringList *bgEventFacingDirections = NULL;
|
||||
QStringList mapsWithConnections;
|
||||
|
||||
QMap<QString, Map*> *map_cache;
|
||||
|
@ -81,6 +85,10 @@ public:
|
|||
void readItemNames();
|
||||
void readFlagNames();
|
||||
void readVarNames();
|
||||
void readMovementTypes();
|
||||
void readCoordEventWeatherNames();
|
||||
void readSecretBaseIds();
|
||||
void readBgEventFacingDirections();
|
||||
|
||||
void loadEventPixmaps(QList<Event*> objects);
|
||||
QMap<QString, int> getEventObjGfxConstants();
|
||||
|
|
Loading…
Reference in a new issue