GWF_PowerUpInjector/mainwindow.h
2025-12-16 15:03:30 -05:00

79 lines
1.5 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QString>
#include <QVector>
#include <QDir>
#include <QFileDialog>
#include <QVector3D>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonValue>
#include <QJsonObject>
struct PowerUpInfo
{
QVector3D mPosition;
QVector4D mRotation;
QVector3D mScale;
};
struct LevelInfo
{
QString mLevelName;
QString mDescription;
QString mPublishedID;
int mMusic;
int mSkybox;
QPixmap mPreview;
QVector<PowerUpInfo> mPowerUps;
int mMaxViewID;
QVector<QVector3D> mObjectPositions;
QString mMapPath;
QJsonObject mMapData;
};
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
#define MAX_POWERUPS 100
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void findSteamPath();
void updateLevels();
QVector<PowerUpInfo> findPowerUps(QJsonObject aMapData);
QVector<QVector3D> getObjectPositions(QJsonObject aObj);
void saveMap(LevelInfo aLevelInfo, bool aBackup = true);
QByteArray serializePowerUpCompact(const PowerUpInfo &p, int photonId);
int getMaxViewID(QJsonObject aMapData);
private slots:
void on_listWidget_MapSelect_currentRowChanged(int currentRow);
void on_listWidget_powerups_currentRowChanged(int currentRow);
void on_pushButton_Generate_clicked();
private:
Ui::MainWindow *ui;
QString mSteamPath;
QVector<LevelInfo> mLevels;
};
#endif // MAINWINDOW_H