Browse Source

Added Race and RaceManager classes

Ivan Arkhipov 7 years ago
parent
commit
d2f094497f
5 changed files with 76 additions and 2 deletions
  1. 6 2
      client.pro
  2. 30 0
      include/race.h
  3. 28 0
      include/racemanager.h
  4. 6 0
      source/race.cpp
  5. 6 0
      source/racemanager.cpp

+ 6 - 2
client.pro

@@ -35,7 +35,9 @@ SOURCES += \
     source/gui/mainmenu.cpp \
     source/gui/guiscenemanager.cpp \
     source/gui/detatchedwidget.cpp \
-    source/gui/playervsplayerintro.cpp
+    source/gui/playervsplayerintro.cpp \
+    source/race.cpp \
+    source/racemanager.cpp
 
 HEADERS += \
     include/gui/uniticon.h \
@@ -47,7 +49,9 @@ HEADERS += \
     include/gui/mainmenu.h \
     include/gui/guiscenemanager.h \
     include/gui/detatchedwidget.h \
-    include/gui/playervsplayerintro.h
+    include/gui/playervsplayerintro.h \
+    include/race.h \
+    include/racemanager.h
 
 FORMS += \
     include/gui/gui.ui \

+ 30 - 0
include/race.h

@@ -0,0 +1,30 @@
+#ifndef INCLUDEACE_H
+#define INCLUDEACE_H
+
+#include <QObject>
+#include <QString>
+
+#include <vector>
+
+#include "abstractfactory.h"
+
+class Unit;
+
+class Race : public QObject
+{
+    Q_OBJECT
+public:
+    explicit Race(QObject *parent = nullptr);
+
+    Unit* createUnit(QString race_name);
+
+    std::vector<QString> getAvailableUnitsList();
+
+private:
+    ObjectFactory<Unit, QString> units_factory_;
+signals:
+
+public slots:
+};
+
+#endif // INCLUDEACE_H

+ 28 - 0
include/racemanager.h

@@ -0,0 +1,28 @@
+#ifndef INCLUDEACEMANAGER_H
+#define INCLUDEACEMANAGER_H
+
+#include <QObject>
+
+#include <vector>
+
+class Race;
+
+class RaceManager : public QObject
+{
+    Q_OBJECT
+private:
+    explicit RaceManager(QObject *parent = nullptr);
+public:
+    static RaceManager& getInstance() {
+        static RaceManager instance;
+        return instance;
+    }
+
+    Race* getRace(QString race_name);
+    std::vector<QString> getAvailableRacesList();
+signals:
+
+public slots:
+};
+
+#endif // INCLUDEACEMANAGER_H

+ 6 - 0
source/race.cpp

@@ -0,0 +1,6 @@
+#include "race.h"
+
+Race::Race(QObject *parent) : QObject(parent)
+{
+
+}

+ 6 - 0
source/racemanager.cpp

@@ -0,0 +1,6 @@
+#include "racemanager.h"
+
+RaceManager::RaceManager(QObject *parent) : QObject(parent)
+{
+
+}