24 #ifndef __ENGINEPLUGIN_H__ 25 #define __ENGINEPLUGIN_H__ 27 #include <QtContainerFwd> 29 #include <QStringList> 36 #define DOOMSEEKER_ABI_VERSION 2 38 #define DECLARE_PLUGIN(XEnginePlugin) \ 39 friend PLUGIN_EXPORT EnginePlugin *doomSeekerInit(); \ 41 static EnginePlugin *staticInstance() { return __Static_Instance; } \ 43 static XEnginePlugin *__Static_Instance; 45 #define INSTALL_PLUGIN(XEnginePlugin) \ 46 XEnginePlugin *XEnginePlugin::__Static_Instance; \ 47 extern "C" PLUGIN_EXPORT unsigned int doomSeekerABI() { return DOOMSEEKER_ABI_VERSION; } \ 48 extern "C" PLUGIN_EXPORT EnginePlugin *doomSeekerInit() \ 50 XEnginePlugin::__Static_Instance = new XEnginePlugin(); \ 51 return XEnginePlugin::staticInstance(); \ 230 unsigned int abiVersion;
231 bool allowsConnectPassword;
233 bool allowsJoinPassword;
235 bool allowsRConPassword;
240 quint16 defaultServerPort;
243 bool inGameFileDownloads;
244 QVector<IRCNetworkEntity> ircChannels;
248 quint8 refreshThreshold;
250 bool supportsRandomMapRotation;
252 unsigned int version;
253 bool demoExtensionAutomatic;
254 QString demoExtension;
280 QString clientExeName;
281 QString serverExeName;
282 QStringList gameFileSearchSuffixes;
292 bool allowsClientSlots;
293 bool allowsPlayerSlots;
299 bool hasBroadcast()
const 301 return broadcast != NULL;
304 bool hasMasterClient()
const 306 return masterClient != NULL;
322 void init(
const char* name,
const char*
const icon[], ...);
327 virtual ConfigPage* configuration(QWidget *parent);
349 return QList<CreateServerDialogPage*>();
352 const Data *data()
const {
return d; }
353 const QPixmap &icon()
const {
return *d->icon; }
359 virtual QList<DMFlagsSection> dmFlags()
const;
379 virtual QList<GameMode> gameModes()
const;
383 virtual QList<GameCVar> gameModifiers()
const;
389 virtual QList<GameCVar>
limits(
const GameMode& mode)
const {
return QList<GameCVar>(); }
394 void masterHost(QString &host,
unsigned short &port)
const;
406 QString nameCanonical()
const;
415 virtual ServerPtr server(
const QHostAddress &address,
unsigned short port)
const;
433 virtual void start();
440 virtual ServerPtr mkServer(
const QHostAddress &address,
unsigned short port)
const = 0;
441 void initDefaultGameFiles();
442 void setGameExeFactory(QSharedPointer<GameExeFactory> factory);
447 QStringList collectKnownPaths(
const IniSection &ini)
const;
451 extern "C" PLUGIN_EXPORT
EnginePlugin *doomSeekerInit();
Disables specifying amount of player slots in create game box.
bool createDMFlagsPagesAutomatic
Controls behavior of "Create Game" dialog.
Informs that the game has no notion of an IWAD.
QPixmap * icon
icon of the engine
(const char*) Author of the plugin.
QSharedPointer< GameExeFactory > gameExeFactory
Factory of executable retrievers ExeFile objects.
Allows the player to join a server without downloading files through Wadseeker.
Tells the create game box that this game allows UPnP.
Signifies that servers can be created with a join password.
Signifies that a server can be created with a random map rotation.
File name for game's server executable if game has any.
Returns executable file retrievers from plugins to Doomseeker.
A representation of a server for a given game.
(const char*) Default ip address and port ("address:port") for master server. Requires EP_HasMasterSe...
(bool)auto, (const char*)extension Sets the extension taht will be used for demos (default is true an...
virtual QList< CreateServerDialogPage * > createServerDialogPages(CreateServerDialog *pDialog)
Creates a list of custom Create Game dialog pages.
GameCVarProvider that returns difficulty levels ordered from easiest to hardest.
QSharedPointer< GameCVarProvider > difficulty
Difficulty levels provider for this game.
Signifies that servers can be created for remote console access.
Dialog window allowing user to host a game.
File name for game's client (main) executable.
Signifies that servers can have a message of the day.
Game mode representation.
Signifies that servers can provide a URL for potential wad downloads.
Signals the end of init parameters.
(quint8) The amount of time (in seconds) that must pass before a server can be requeried.
Base class to be used by plugins to define custom pages in Create Game dialog.
Signifies that servers can be created with a connection password.
Disables map list in create game box.
Signifies that servers can have an administrative contact email attached.
Data structure that describes and defines a connection to an IRC network or server.
INI section representation.
Indicates that client binary serves the purpose of the client and server.
Creates game servers, offline games or demo playbacks.
virtual QList< GameCVar > limits(const GameMode &mode) const
Returns a list of limits (like fraglimit) supported by passed gamemode.
(unsigned int) Single version number for plugin.
(quint16) Default port for custom server creation.
Abstract base for all MasterClients.
Default search suffixes used to automatically find game files.
(const char*)server, (const char*)channel - Can be repeated. Default IRC channels.
(const char*) Overrides the URL scheme which Doomseeker sets for this plugin. By default it is the po...
A general game setting or variable (like fraglimit).
QString defaultMaster
Default port on which servers for given engine are hosted.
Base class for configuration pages.
Disables specifying amount of client slots in create game box.