// This file is generated by kconfig_compiler_kf6 from granatier.kcfg.
// All changes you do to this file will be lost.
#ifndef SETTINGS_H
#define SETTINGS_H

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

class Settings : public KConfigSkeleton
{
  public:

    static Settings *self();
    ~Settings() override;

    /**
      Set Check if it is the first run of the game.
    */
    static
    void setFirstRun( int v )
    {
      if (!self()->isFirstRunImmutable())
        self()->mFirstRun = v;
    }

    /**
      Get Check if it is the first run of the game.
    */
    static
    int firstRun()
    {
      return self()->mFirstRun;
    }

    /**
      Is Check if it is the first run of the game. Immutable
    */
    static
    bool isFirstRunImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FirstRun" ) );
    }

    /**
      Set The graphical theme to be used.
    */
    static
    void setTheme( const QString & v )
    {
      if (!self()->isThemeImmutable())
        self()->mTheme = v;
    }

    /**
      Get The graphical theme to be used.
    */
    static
    QString theme()
    {
      return self()->mTheme;
    }

    /**
      Is The graphical theme to be used. Immutable
    */
    static
    bool isThemeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Theme" ) );
    }

    /**
      Set The arena to be used.
    */
    static
    void setArena( const QString & v )
    {
      if (!self()->isArenaImmutable())
        self()->mArena = v;
    }

    /**
      Get The arena to be used.
    */
    static
    QString arena()
    {
      return self()->mArena;
    }

    /**
      Is The arena to be used. Immutable
    */
    static
    bool isArenaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Arena" ) );
    }

    /**
      Set Use random arenas.
    */
    static
    void setRandomArenaMode( bool v )
    {
      if (!self()->isRandomArenaModeImmutable())
        self()->mRandomArenaMode = v;
    }

    /**
      Get Use random arenas.
    */
    static
    bool randomArenaMode()
    {
      return self()->mRandomArenaMode;
    }

    /**
      Is Use random arenas. Immutable
    */
    static
    bool isRandomArenaModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RandomArenaMode" ) );
    }

    /**
      Set List of arenas, used in random mode.
    */
    static
    void setRandomArenaModeArenaList( const QStringList & v )
    {
      if (!self()->isRandomArenaModeArenaListImmutable())
        self()->mRandomArenaModeArenaList = v;
    }

    /**
      Get List of arenas, used in random mode.
    */
    static
    QStringList randomArenaModeArenaList()
    {
      return self()->mRandomArenaModeArenaList;
    }

    /**
      Is List of arenas, used in random mode. Immutable
    */
    static
    bool isRandomArenaModeArenaListImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RandomArenaModeArenaList" ) );
    }

    /**
      Set The points a user needs to win the game.
    */
    static
    void setPointsToWin( int v )
    {
      if (!self()->isPointsToWinImmutable())
        self()->mPointsToWin = v;
    }

    /**
      Get The points a user needs to win the game.
    */
    static
    int pointsToWin()
    {
      return self()->mPointsToWin;
    }

    /**
      Is The points a user needs to win the game. Immutable
    */
    static
    bool isPointsToWinImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PointsToWin" ) );
    }

    /**
      Set Time for a round.
    */
    static
    void setRoundTime( int v )
    {
      if (!self()->isRoundTimeImmutable())
        self()->mRoundTime = v;
    }

    /**
      Get Time for a round.
    */
    static
    int roundTime()
    {
      return self()->mRoundTime;
    }

    /**
      Is Time for a round. Immutable
    */
    static
    bool isRoundTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RoundTime" ) );
    }

    /**
      Set The initial speed.
    */
    static
    void setInitialSpeed( int v )
    {
      if (!self()->isInitialSpeedImmutable())
        self()->mInitialSpeed = v;
    }

    /**
      Get The initial speed.
    */
    static
    int initialSpeed()
    {
      return self()->mInitialSpeed;
    }

    /**
      Is The initial speed. Immutable
    */
    static
    bool isInitialSpeedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "InitialSpeed" ) );
    }

    /**
      Set The initial bomb power.
    */
    static
    void setInitialBombPower( int v )
    {
      if (!self()->isInitialBombPowerImmutable())
        self()->mInitialBombPower = v;
    }

    /**
      Get The initial bomb power.
    */
    static
    int initialBombPower()
    {
      return self()->mInitialBombPower;
    }

    /**
      Is The initial bomb power. Immutable
    */
    static
    bool isInitialBombPowerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "InitialBombPower" ) );
    }

    /**
      Set The initial bomb armory.
    */
    static
    void setInitialBombArmory( int v )
    {
      if (!self()->isInitialBombArmoryImmutable())
        self()->mInitialBombArmory = v;
    }

    /**
      Get The initial bomb armory.
    */
    static
    int initialBombArmory()
    {
      return self()->mInitialBombArmory;
    }

    /**
      Is The initial bomb armory. Immutable
    */
    static
    bool isInitialBombArmoryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "InitialBombArmory" ) );
    }

    /**
      Set Whether sound effects should be played.
    */
    static
    void setSounds( bool v )
    {
      if (!self()->isSoundsImmutable())
        self()->mSounds = v;
    }

    /**
      Get Whether sound effects should be played.
    */
    static
    bool sounds()
    {
      return self()->mSounds;
    }

    /**
      Is Whether sound effects should be played. Immutable
    */
    static
    bool isSoundsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Sounds" ) );
    }

    /**
      Set Whether to use the Wilhelm Scream for dying players.
    */
    static
    void setUseWilhelmScream( bool v )
    {
      if (!self()->isUseWilhelmScreamImmutable())
        self()->mUseWilhelmScream = v;
    }

    /**
      Get Whether to use the Wilhelm Scream for dying players.
    */
    static
    bool useWilhelmScream()
    {
      return self()->mUseWilhelmScream;
    }

    /**
      Is Whether to use the Wilhelm Scream for dying players. Immutable
    */
    static
    bool isUseWilhelmScreamImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseWilhelmScream" ) );
    }

    /**
      Set This is a dummy setting for player setup.
    */
    static
    void setDummy( int v )
    {
      if (!self()->isDummyImmutable())
        self()->mDummy = v;
    }

    /**
      Get This is a dummy setting for player setup.
    */
    static
    int dummy()
    {
      return self()->mDummy;
    }

    /**
      Is This is a dummy setting for player setup. Immutable
    */
    static
    bool isDummyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Dummy" ) );
    }

    /**
      Set This is only for the artists to make their life easier.
    */
    static
    void setShowAllTiles( int v )
    {
      if (!self()->isShowAllTilesImmutable())
        self()->mShowAllTiles = v;
    }

    /**
      Get This is only for the artists to make their life easier.
    */
    static
    int showAllTiles()
    {
      return self()->mShowAllTiles;
    }

    /**
      Is This is only for the artists to make their life easier. Immutable
    */
    static
    bool isShowAllTilesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAllTiles" ) );
    }

    /**
      Set This is only for the artists to make their life easier.
    */
    static
    void setBlastTime1( int v )
    {
      if (!self()->isBlastTime1Immutable())
        self()->mBlastTime1 = v;
    }

    /**
      Get This is only for the artists to make their life easier.
    */
    static
    int blastTime1()
    {
      return self()->mBlastTime1;
    }

    /**
      Is This is only for the artists to make their life easier. Immutable
    */
    static
    bool isBlastTime1Immutable()
    {
      return self()->isImmutable( QStringLiteral( "BlastTime1" ) );
    }

    /**
      Set This is only for the artists to make their life easier.
    */
    static
    void setBlastTime2( int v )
    {
      if (!self()->isBlastTime2Immutable())
        self()->mBlastTime2 = v;
    }

    /**
      Get This is only for the artists to make their life easier.
    */
    static
    int blastTime2()
    {
      return self()->mBlastTime2;
    }

    /**
      Is This is only for the artists to make their life easier. Immutable
    */
    static
    bool isBlastTime2Immutable()
    {
      return self()->isImmutable( QStringLiteral( "BlastTime2" ) );
    }

    /**
      Set This is only for the artists to make their life easier.
    */
    static
    void setBlastTime3( int v )
    {
      if (!self()->isBlastTime3Immutable())
        self()->mBlastTime3 = v;
    }

    /**
      Get This is only for the artists to make their life easier.
    */
    static
    int blastTime3()
    {
      return self()->mBlastTime3;
    }

    /**
      Is This is only for the artists to make their life easier. Immutable
    */
    static
    bool isBlastTime3Immutable()
    {
      return self()->isImmutable( QStringLiteral( "BlastTime3" ) );
    }

    /**
      Set This is only for the artists to make their life easier.
    */
    static
    void setBlastTime4( int v )
    {
      if (!self()->isBlastTime4Immutable())
        self()->mBlastTime4 = v;
    }

    /**
      Get This is only for the artists to make their life easier.
    */
    static
    int blastTime4()
    {
      return self()->mBlastTime4;
    }

    /**
      Is This is only for the artists to make their life easier. Immutable
    */
    static
    bool isBlastTime4Immutable()
    {
      return self()->isImmutable( QStringLiteral( "BlastTime4" ) );
    }

    /**
      Set This is only for the artists to make their life easier.
    */
    static
    void setBlastTime5( int v )
    {
      if (!self()->isBlastTime5Immutable())
        self()->mBlastTime5 = v;
    }

    /**
      Get This is only for the artists to make their life easier.
    */
    static
    int blastTime5()
    {
      return self()->mBlastTime5;
    }

    /**
      Is This is only for the artists to make their life easier. Immutable
    */
    static
    bool isBlastTime5Immutable()
    {
      return self()->isImmutable( QStringLiteral( "BlastTime5" ) );
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // General
    int mFirstRun;
    QString mTheme;
    QString mArena;
    bool mRandomArenaMode;
    QStringList mRandomArenaModeArenaList;
    int mPointsToWin;
    int mRoundTime;
    int mInitialSpeed;
    int mInitialBombPower;
    int mInitialBombArmory;
    bool mSounds;
    bool mUseWilhelmScream;
    int mDummy;
    int mShowAllTiles;
    int mBlastTime1;
    int mBlastTime2;
    int mBlastTime3;
    int mBlastTime4;
    int mBlastTime5;
};

#endif

