summaryrefslogtreecommitdiffstats
path: root/libksirtet/common/factory.h
diff options
context:
space:
mode:
Diffstat (limited to 'libksirtet/common/factory.h')
-rw-r--r--libksirtet/common/factory.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/libksirtet/common/factory.h b/libksirtet/common/factory.h
new file mode 100644
index 00000000..c0b40d66
--- /dev/null
+++ b/libksirtet/common/factory.h
@@ -0,0 +1,36 @@
+#ifndef COMMON_FACTORY_H
+#define COMMON_FACTORY_H
+
+#include "base/factory.h"
+
+#include "lib/libksirtet_export.h"
+
+struct CommonBoardInfo {
+ uint baseTime, dropDownTime, beforeGlueTime, afterGlueTime;
+ uint afterGiftTime, nbBumpStages;
+ uint nbRemovedToLevel;
+ uint nbGiftLeds, maxGiftsToSend, giftShowerTimeout, giftPoolTimeout;
+};
+
+class BaseField;
+class AI;
+
+#define cfactory static_cast<CommonFactory *>(BaseFactory::self())
+
+class LIBKSIRTET_EXPORT CommonFactory : public BaseFactory
+{
+ public:
+ CommonFactory(const MainData &, const BaseBoardInfo &,
+ const CommonBoardInfo &);
+
+ const CommonBoardInfo &cbi;
+
+ virtual BaseField *createField(QWidget *parent) = 0;
+ virtual AI *createAI() = 0;
+
+ QWidget *createAIConfig();
+ virtual QWidget *createAppearanceConfig();
+ virtual QWidget *createGameConfig();
+};
+
+#endif