add a switch for using .pory script files in the project config
This commit is contained in:
parent
b9ec239655
commit
bc4d9e2276
5 changed files with 42 additions and 4 deletions
|
@ -106,6 +106,8 @@ public:
|
||||||
BaseGameVersion getBaseGameVersion();
|
BaseGameVersion getBaseGameVersion();
|
||||||
void setEncounterJsonActive(bool active);
|
void setEncounterJsonActive(bool active);
|
||||||
bool getEncounterJsonActive();
|
bool getEncounterJsonActive();
|
||||||
|
void setUsePoryScript(bool usePoryScript);
|
||||||
|
bool getUsePoryScript();
|
||||||
void setProjectDir(QString projectDir);
|
void setProjectDir(QString projectDir);
|
||||||
protected:
|
protected:
|
||||||
QString getConfigFilepath();
|
QString getConfigFilepath();
|
||||||
|
@ -116,6 +118,7 @@ private:
|
||||||
BaseGameVersion baseGameVersion;
|
BaseGameVersion baseGameVersion;
|
||||||
QString projectDir;
|
QString projectDir;
|
||||||
bool useEncounterJson;
|
bool useEncounterJson;
|
||||||
|
bool usePoryScript;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern ProjectConfig projectConfig;
|
extern ProjectConfig projectConfig;
|
||||||
|
|
|
@ -151,6 +151,9 @@ public:
|
||||||
QString fixPalettePath(QString path);
|
QString fixPalettePath(QString path);
|
||||||
QString fixGraphicPath(QString path);
|
QString fixGraphicPath(QString path);
|
||||||
|
|
||||||
|
QString getScriptFileExtension(bool usePoryScript);
|
||||||
|
QString getScriptDefaultString(bool usePoryScript, QString mapName);
|
||||||
|
|
||||||
void loadMapBorder(Map *map);
|
void loadMapBorder(Map *map);
|
||||||
|
|
||||||
void saveMapHealEvents(Map *map);
|
void saveMapHealEvents(Map *map);
|
||||||
|
|
|
@ -354,6 +354,12 @@ void ProjectConfig::parseConfigKeyValue(QString key, QString value) {
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
logWarn(QString("Invalid config value for use_encounter_json: '%1'. Must be 0 or 1.").arg(value));
|
logWarn(QString("Invalid config value for use_encounter_json: '%1'. Must be 0 or 1.").arg(value));
|
||||||
}
|
}
|
||||||
|
} else if(key == "use_poryscript") {
|
||||||
|
bool ok;
|
||||||
|
this->usePoryScript = value.toInt(&ok);
|
||||||
|
if(!ok) {
|
||||||
|
logWarn(QString("Invalid config value for use_poryscript: '%1'. Must be 0 or 1.").arg(value));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
logWarn(QString("Invalid config key found in config file %1: '%2'").arg(this->getConfigFilepath()).arg(key));
|
logWarn(QString("Invalid config key found in config file %1: '%2'").arg(this->getConfigFilepath()).arg(key));
|
||||||
}
|
}
|
||||||
|
@ -363,6 +369,7 @@ QMap<QString, QString> ProjectConfig::getKeyValueMap() {
|
||||||
QMap<QString, QString> map;
|
QMap<QString, QString> map;
|
||||||
map.insert("base_game_version", baseGameVersionMap.value(this->baseGameVersion));
|
map.insert("base_game_version", baseGameVersionMap.value(this->baseGameVersion));
|
||||||
map.insert("use_encounter_json", QString::number(this->useEncounterJson));
|
map.insert("use_encounter_json", QString::number(this->useEncounterJson));
|
||||||
|
map.insert("use_poryscript", QString::number(this->usePoryScript));
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,6 +399,7 @@ void ProjectConfig::onNewConfigFileCreated() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->useEncounterJson = true;
|
this->useEncounterJson = true;
|
||||||
|
this->usePoryScript = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectConfig::setProjectDir(QString projectDir) {
|
void ProjectConfig::setProjectDir(QString projectDir) {
|
||||||
|
@ -415,3 +423,12 @@ void ProjectConfig::setEncounterJsonActive(bool active) {
|
||||||
bool ProjectConfig::getEncounterJsonActive() {
|
bool ProjectConfig::getEncounterJsonActive() {
|
||||||
return this->useEncounterJson;
|
return this->useEncounterJson;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProjectConfig::setUsePoryScript(bool usePoryScript) {
|
||||||
|
this->usePoryScript = usePoryScript;
|
||||||
|
this->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ProjectConfig::getUsePoryScript() {
|
||||||
|
return this->usePoryScript;
|
||||||
|
}
|
||||||
|
|
|
@ -1062,7 +1062,7 @@ void MainWindow::redo() {
|
||||||
|
|
||||||
// Open current map scripts in system default editor for .inc files
|
// Open current map scripts in system default editor for .inc files
|
||||||
void MainWindow::openInTextEditor() {
|
void MainWindow::openInTextEditor() {
|
||||||
QString path = QDir::cleanPath("file://" + editor->project->root + QDir::separator() + "data/maps/" + editor->map->name + "/scripts.inc");
|
QString path = QDir::cleanPath("file://" + editor->project->root + QDir::separator() + "data/maps/" + editor->map->name + "/scripts" + editor->project->getScriptFileExtension(projectConfig.getUsePoryScript()));
|
||||||
QDesktopServices::openUrl(QUrl(path));
|
QDesktopServices::openUrl(QUrl(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -962,12 +962,12 @@ void Project::saveMap(Map *map) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create file data/maps/<map_name>/scripts.inc
|
// Create file data/maps/<map_name>/scripts.inc
|
||||||
QString text = QString("%1_MapScripts::\n\t.byte 0\n").arg(map->name);
|
QString text = this->getScriptDefaultString(projectConfig.getUsePoryScript(), map->name);
|
||||||
saveTextFile(root + "/data/maps/" + map->name + "/scripts.inc", text);
|
saveTextFile(root + "/data/maps/" + map->name + "/scripts" + this->getScriptFileExtension(projectConfig.getUsePoryScript()), text);
|
||||||
|
|
||||||
if (projectConfig.getBaseGameVersion() == BaseGameVersion::pokeruby) {
|
if (projectConfig.getBaseGameVersion() == BaseGameVersion::pokeruby) {
|
||||||
// Create file data/maps/<map_name>/text.inc
|
// Create file data/maps/<map_name>/text.inc
|
||||||
saveTextFile(root + "/data/maps/" + map->name + "/text.inc", "\n");
|
saveTextFile(root + "/data/maps/" + map->name + "/text" + this->getScriptFileExtension(projectConfig.getUsePoryScript()), "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Simply append to data/event_scripts.s.
|
// Simply append to data/event_scripts.s.
|
||||||
|
@ -1798,6 +1798,21 @@ QString Project::fixGraphicPath(QString path) {
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Project::getScriptFileExtension(bool usePoryScript) {
|
||||||
|
if(usePoryScript) {
|
||||||
|
return ".pory";
|
||||||
|
} else {
|
||||||
|
return ".inc";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Project::getScriptDefaultString(bool usePoryScript, QString mapName) {
|
||||||
|
if(usePoryScript)
|
||||||
|
return QString("mapscripts %1_MapScripts {}").arg(mapName);
|
||||||
|
else
|
||||||
|
return QString("%1_MapScripts::\n\t.byte 0\n").arg(mapName);
|
||||||
|
}
|
||||||
|
|
||||||
void Project::loadEventPixmaps(QList<Event*> objects) {
|
void Project::loadEventPixmaps(QList<Event*> objects) {
|
||||||
bool needs_update = false;
|
bool needs_update = false;
|
||||||
for (Event *object : objects) {
|
for (Event *object : objects) {
|
||||||
|
|
Loading…
Reference in a new issue