#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include struct PowerUpInfo { QVector3D mPosition; QVector4D mRotation; QVector3D mScale; }; struct LevelInfo { QString mLevelName; QString mDescription; QString mPublishedID; int mMusic; int mSkybox; QPixmap mPreview; QVector mPowerUps; int mMaxViewID; QVector 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 findPowerUps(QJsonObject aMapData); QVector 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 mLevels; }; #endif // MAINWINDOW_H