1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-24 13:07:44 +00:00

Rename directories, update README

This commit is contained in:
Joshua Goins 2023-10-10 18:02:13 -04:00
parent d8a4178095
commit 0f2eaab936
21 changed files with 74 additions and 54 deletions

View file

@ -51,15 +51,15 @@ if(APPLE)
endif() endif()
add_subdirectory(renderer) add_subdirectory(renderer)
add_subdirectory(exdviewer) add_subdirectory(karuku)
add_subdirectory(armoury) add_subdirectory(armoury)
add_subdirectory(argcracker) add_subdirectory(argcracker)
add_subdirectory(explorer) add_subdirectory(sagasu)
#add_subdirectory(bonedecomp) # not yet ported to physis #add_subdirectory(bonedecomp) # not yet ported to physis
add_subdirectory(parts) add_subdirectory(parts)
add_subdirectory(common) add_subdirectory(common)
add_subdirectory(mdlviewer) add_subdirectory(mdlviewer)
add_subdirectory(sdklauncher) add_subdirectory(launcher)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)

View file

@ -11,12 +11,11 @@ any stable releases.
This repository contains many parts of Novus, such as: This repository contains many parts of Novus, such as:
* [Argcracker](argcracker), a program that can decrypt game arguments. * [Argcracker](argcracker), a program that can help decrypt game arguments.
* [Armoury](armoury), a graphical gear and character viewer. * [Armoury](armoury), a graphical gear and character viewer. It also supports GLTF export.
* [Bone Decompiler](bonedecomp), a tool to decompile Havok skeleton files into TexTools-compatible JSON. * [Karuku](karuku), a graphical program to view Excel data sheets.
* [EXD Viewer](exdviewer), a graphical program to view Excel (EXD) sheets from the game. * [MDLViewer](mdlviewer), a graphical model viewer for MDL files.
* [Explorer](explorer), a graphical interface to explore DAT files. * [Sagasu](sagasu), a graphical interface to explore FFXIV data archive files.
* [Model Viewer](mdlviewer), a graphical model viewer for MDL files.
## Building ## Building

View file

@ -7,7 +7,8 @@
struct GameData; struct GameData;
class MainWindow : public QMainWindow { class MainWindow : public QMainWindow
{
public: public:
MainWindow(GameData *data); MainWindow(GameData *data);

View file

@ -8,7 +8,8 @@
#include "mainwindow.h" #include "mainwindow.h"
#include "settings.h" #include "settings.h"
int main(int argc, char* argv[]) { int main(int argc, char *argv[])
{
QApplication app(argc, argv); QApplication app(argc, argv);
customizeAboutData(QStringLiteral("karuku"), QStringLiteral("Karuku"), QStringLiteral("Program to view FFXIV Excel files.")); customizeAboutData(QStringLiteral("karuku"), QStringLiteral("Karuku"), QStringLiteral("Program to view FFXIV Excel files."));

View file

@ -17,7 +17,9 @@
#include "exdpart.h" #include "exdpart.h"
MainWindow::MainWindow(GameData* data) : data(data) { MainWindow::MainWindow(GameData *data)
: data(data)
{
setWindowTitle(QStringLiteral("Karuku")); setWindowTitle(QStringLiteral("Karuku"));
setMinimumSize(1280, 720); setMinimumSize(1280, 720);

View file

@ -5,7 +5,8 @@
#include <QMainWindow> #include <QMainWindow>
class MainWindow : public QMainWindow { class MainWindow : public QMainWindow
{
public: public:
MainWindow(); MainWindow();
}; };

View file

@ -10,7 +10,8 @@
#include "mainwindow.h" #include "mainwindow.h"
int main(int argc, char* argv[]) { int main(int argc, char *argv[])
{
QApplication app(argc, argv); QApplication app(argc, argv);
KConfig config(QStringLiteral("novusrc")); KConfig config(QStringLiteral("novusrc"));

View file

@ -17,7 +17,8 @@ static QMap<QString, QString> applications = {{QStringLiteral("Armoury - View an
{QStringLiteral("Sagasu - Explore data archives"), QStringLiteral("novus-sagasu")}, {QStringLiteral("Sagasu - Explore data archives"), QStringLiteral("novus-sagasu")},
{QStringLiteral("Model Viewer - Preview MDL files"), QStringLiteral("novus-mdlviewer")}}; {QStringLiteral("Model Viewer - Preview MDL files"), QStringLiteral("novus-mdlviewer")}};
MainWindow::MainWindow() { MainWindow::MainWindow()
{
setWindowTitle(QStringLiteral("Novus SDK")); setWindowTitle(QStringLiteral("Novus SDK"));
auto appList = new QListWidget(); auto appList = new QListWidget();

View file

@ -6,7 +6,8 @@
#include <QMdiSubWindow> #include <QMdiSubWindow>
#include <physis.hpp> #include <physis.hpp>
class FilePropertiesWindow : public QWidget { class FilePropertiesWindow : public QWidget
{
Q_OBJECT Q_OBJECT
public: public:
explicit FilePropertiesWindow(GameData *data, QString path, QWidget *parent = nullptr); explicit FilePropertiesWindow(GameData *data, QString path, QWidget *parent = nullptr);

View file

@ -11,7 +11,8 @@ struct PathPart {
QMap<QString, PathPart> children; QMap<QString, PathPart> children;
}; };
class FileTreeWindow : public QWidget { class FileTreeWindow : public QWidget
{
Q_OBJECT Q_OBJECT
public: public:
explicit FileTreeWindow(GameData *data, QWidget *parent = nullptr); explicit FileTreeWindow(GameData *data, QWidget *parent = nullptr);

View file

@ -10,14 +10,13 @@
struct GameData; struct GameData;
class MainWindow : public QMainWindow { class MainWindow : public QMainWindow
{
public: public:
MainWindow(GameData *data); MainWindow(GameData *data);
private: private:
QMdiArea *mdiArea = nullptr; QMdiArea *mdiArea = nullptr;
GameData *data; GameData *data;
}; };

View file

@ -10,7 +10,9 @@
#include "filepropertieswindow.h" #include "filepropertieswindow.h"
FilePropertiesWindow::FilePropertiesWindow(GameData *data, QString path, QWidget *parent) FilePropertiesWindow::FilePropertiesWindow(GameData *data, QString path, QWidget *parent)
: QWidget(parent), data(data) { : QWidget(parent)
, data(data)
{
setWindowTitle(QStringLiteral("Properties for ") + path); setWindowTitle(QStringLiteral("Properties for ") + path);
auto layout = new QFormLayout(); auto layout = new QFormLayout();

View file

@ -8,7 +8,10 @@
#include "filetreewindow.h" #include "filetreewindow.h"
FileTreeWindow::FileTreeWindow(GameData* data, QWidget* parent) : QWidget(parent), data(data) { FileTreeWindow::FileTreeWindow(GameData *data, QWidget *parent)
: QWidget(parent)
, data(data)
{
setWindowTitle(QStringLiteral("File Tree")); setWindowTitle(QStringLiteral("File Tree"));
auto layout = new QHBoxLayout(); auto layout = new QHBoxLayout();
@ -63,7 +66,8 @@ FileTreeWindow::FileTreeWindow(GameData* data, QWidget* parent) : QWidget(parent
addPaths(treeWidget); addPaths(treeWidget);
} }
void FileTreeWindow::addPath(QString path) { void FileTreeWindow::addPath(QString path)
{
auto tokens = path.split(QStringLiteral("/")); auto tokens = path.split(QStringLiteral("/"));
auto nextToken = tokens[0]; auto nextToken = tokens[0];
tokens.pop_front(); tokens.pop_front();
@ -71,7 +75,8 @@ void FileTreeWindow::addPath(QString path) {
traversePart(tokens, rootParts[nextToken], nextToken); traversePart(tokens, rootParts[nextToken], nextToken);
} }
void FileTreeWindow::traversePart(QList<QString> tokens, PathPart& part, QString pathSoFar) { void FileTreeWindow::traversePart(QList<QString> tokens, PathPart &part, QString pathSoFar)
{
if (tokens.empty()) if (tokens.empty())
return; return;
@ -84,14 +89,16 @@ void FileTreeWindow::traversePart(QList<QString> tokens, PathPart& part, QString
traversePart(tokens, part.children[nextToken], pathSoFar); traversePart(tokens, part.children[nextToken], pathSoFar);
} }
void FileTreeWindow::addPaths(QTreeWidget *pWidget) { void FileTreeWindow::addPaths(QTreeWidget *pWidget)
{
for (const auto &name : rootParts.keys()) { for (const auto &name : rootParts.keys()) {
auto item = addPartAndChildren(name, rootParts.value(name), QStringLiteral("")); auto item = addPartAndChildren(name, rootParts.value(name), QStringLiteral(""));
pWidget->addTopLevelItem(item); pWidget->addTopLevelItem(item);
} }
} }
QTreeWidgetItem* FileTreeWindow::addPartAndChildren(const QString& qString, const PathPart& part, const QString& pathSoFar) { QTreeWidgetItem *FileTreeWindow::addPartAndChildren(const QString &qString, const PathPart &part, const QString &pathSoFar)
{
QString newPath = pathSoFar.isEmpty() ? qString : pathSoFar + QStringLiteral("/") + qString; QString newPath = pathSoFar.isEmpty() ? qString : pathSoFar + QStringLiteral("/") + qString;
auto item = new QTreeWidgetItem(); auto item = new QTreeWidgetItem();
@ -106,7 +113,8 @@ QTreeWidgetItem* FileTreeWindow::addPartAndChildren(const QString& qString, cons
return item; return item;
} }
void FileTreeWindow::addUnknownPath(QString knownDirectory, uint32_t crcHash) { void FileTreeWindow::addUnknownPath(QString knownDirectory, uint32_t crcHash)
{
auto [found, path] = traverseUnknownPath(crcHash, rootParts[knownDirectory], knownDirectory); auto [found, path] = traverseUnknownPath(crcHash, rootParts[knownDirectory], knownDirectory);
if (found) if (found)
addPath(path); addPath(path);
@ -114,7 +122,8 @@ void FileTreeWindow::addUnknownPath(QString knownDirectory, uint32_t crcHash) {
addPath(knownDirectory + QStringLiteral("/Unknown File Hash ") + QString::number(crcHash)); addPath(knownDirectory + QStringLiteral("/Unknown File Hash ") + QString::number(crcHash));
} }
std::tuple<bool, QString> FileTreeWindow::traverseUnknownPath(uint32_t crcHash, PathPart &part, QString pathSoFar) { std::tuple<bool, QString> FileTreeWindow::traverseUnknownPath(uint32_t crcHash, PathPart &part, QString pathSoFar)
{
if (part.crcHash == crcHash) if (part.crcHash == crcHash)
return {true, pathSoFar}; return {true, pathSoFar};

View file

@ -10,7 +10,8 @@
#include "mainwindow.h" #include "mainwindow.h"
#include "settings.h" #include "settings.h"
int main(int argc, char* argv[]) { int main(int argc, char *argv[])
{
QApplication app(argc, argv); QApplication app(argc, argv);
customizeAboutData(QStringLiteral("sagasu"), QStringLiteral("Sagasu"), QStringLiteral("Program to explore FFXIV data archives.")); customizeAboutData(QStringLiteral("sagasu"), QStringLiteral("Sagasu"), QStringLiteral("Program to explore FFXIV data archives."));

View file

@ -18,7 +18,9 @@
#include "filepropertieswindow.h" #include "filepropertieswindow.h"
#include "filetreewindow.h" #include "filetreewindow.h"
MainWindow::MainWindow(GameData* data) : data(data) { MainWindow::MainWindow(GameData *data)
: data(data)
{
setWindowTitle(QStringLiteral("Sagasu")); setWindowTitle(QStringLiteral("Sagasu"));
auto fileMenu = menuBar()->addMenu(QStringLiteral("File")); auto fileMenu = menuBar()->addMenu(QStringLiteral("File"));
@ -60,4 +62,3 @@ MainWindow::MainWindow(GameData* data) : data(data) {
mdiArea->addSubWindow(tree); mdiArea->addSubWindow(tree);
} }