24 #ifndef __ENGINEPLUGIN_H__
25 #define __ENGINEPLUGIN_H__
30 #include "serverapi/textprovider.h"
32 #include <QStringList>
33 #include <QtContainerFwd>
37 #define DOOMSEEKER_ABI_VERSION 2
39 #define DECLARE_PLUGIN(XEnginePlugin) \
40 friend PLUGIN_EXPORT EnginePlugin * doomSeekerInit(); \
42 static EnginePlugin *staticInstance() { return __Static_Instance; } \
44 static XEnginePlugin *__Static_Instance;
46 #define INSTALL_PLUGIN(XEnginePlugin) \
47 XEnginePlugin *XEnginePlugin::__Static_Instance; \
48 extern "C" PLUGIN_EXPORT unsigned int doomSeekerABI() { return DOOMSEEKER_ABI_VERSION; } \
49 extern "C" PLUGIN_EXPORT EnginePlugin *doomSeekerInit() \
51 XEnginePlugin::__Static_Instance = new XEnginePlugin(); \
52 return XEnginePlugin::staticInstance(); \
269 unsigned int abiVersion;
270 bool allowsConnectPassword;
272 bool allowsJoinPassword;
274 bool allowsRConPassword;
279 quint16 defaultServerPort;
282 bool inGameFileDownloads;
283 QVector<IRCNetworkEntity> ircChannels;
287 quint8 refreshThreshold;
289 bool supportsRandomMapRotation;
291 unsigned int version;
292 bool demoExtensionAutomatic;
293 QString demoExtension;
324 QString clientExeName;
325 QString serverExeName;
326 QStringList gameFileSearchSuffixes;
336 bool allowsClientSlots;
337 bool allowsPlayerSlots;
341 QString canonicalName;
345 bool hasBroadcast()
const
347 return broadcast !=
nullptr;
350 bool hasMasterClient()
const
352 return masterClient !=
nullptr;
368 void init(
const char *name,
const char *
const icon[], ...);
373 virtual ConfigPage *configuration(QWidget *parent);
395 return QList<CreateServerDialogPage *>();
398 const Data *data()
const
406 QString defaultMasterAddress()
const;
408 const QPixmap &icon()
const
418 virtual QList<DMFlagsSection> dmFlags()
const;
434 virtual QList<GameMode> gameModes()
const;
442 virtual QList<GameCVar> gameModifiers()
const;
456 virtual QList<GameCVar> limits(
const GameMode &mode)
const
459 return QList<GameCVar>();
465 void masterHost(QString &host,
unsigned short &port)
const;
480 QString nameCanonical()
const;
489 virtual ServerPtr server(
const QHostAddress &address,
unsigned short port)
const;
507 virtual void start();
514 virtual ServerPtr mkServer(
const QHostAddress &address,
unsigned short port)
const = 0;
515 void initDefaultGameFiles();
516 void setGameExeFactory(QSharedPointer<GameExeFactory> factory);
521 QStringList collectKnownPaths(
const IniSection &ini)
const;
525 extern "C" PLUGIN_EXPORT
EnginePlugin *doomSeekerInit();