24 #ifndef __ENGINEPLUGIN_H__
25 #define __ENGINEPLUGIN_H__
27 #include <QtContainerFwd>
35 #define DOOMSEEKER_ABI_VERSION 2
37 #define DECLARE_PLUGIN(XEnginePlugin) \
39 static EnginePlugin *staticInstance() { return &__Static_Instance; } \
41 static XEnginePlugin __Static_Instance;
43 #define INSTALL_PLUGIN(XEnginePlugin) \
44 XEnginePlugin XEnginePlugin::__Static_Instance; \
45 extern "C" PLUGIN_EXPORT unsigned int doomSeekerABI() { return DOOMSEEKER_ABI_VERSION; } \
46 extern "C" PLUGIN_EXPORT EnginePlugin *doomSeekerInit() \
48 return XEnginePlugin::staticInstance(); \
123 unsigned int abiVersion;
126 bool allowsConnectPassword;
128 bool allowsJoinPassword;
130 bool allowsRConPassword;
135 quint16 defaultServerPort;
146 bool hasMasterServer;
149 bool inGameFileDownloads;
150 QVector<IRCNetworkEntity> ircChannels;
153 quint8 refreshThreshold;
155 bool supportsRandomMapRotation;
157 unsigned int version;
158 bool demoExtensionAutomatic;
159 QString demoExtension;
198 void init(
const char* name,
const char*
const icon[], ...);
225 return QList<CreateServerDialogPage*>();
228 const Data *data()
const {
return d; }
229 const QPixmap &icon()
const {
return *d->icon; }
234 return data()->gameExeFactory;
250 virtual QList<GameCVar>
limits(
const GameMode& mode)
const {
return QList<GameCVar>(); }
259 void masterHost(QString &host,
unsigned short &port)
const;
271 QString nameCanonical()
const;
280 virtual ServerPtr server(
const QHostAddress &address,
unsigned short port)
const;
287 virtual ServerPtr mkServer(
const QHostAddress &address,
unsigned short port)
const = 0;
289 void setDMFlags(
const QList<DMFlagsSection> &dmFlags);
290 void setGameModes(
const QList<GameMode> &gameModes);
291 void setGameModifiers(
const QList<GameCVar> &gameModifiers);
GameExeFactory * gameExeFactory
Factory of executable retrievers objects.
bool createDMFlagsPagesAutomatic
Controls behavior of "Create Game" dialog.
QPixmap * icon
icon of the engine
(const char*) Author of the plugin.
Allows the player to join a server without downloading files through Wadseeker.
Signifies that servers can be created with a join password.
Signifies that a server can be created with a random map rotation.
QList< GameMode > gameModes
All available game modes for the engine or NULL if none.
Returns executable file retrievers from plugins to Doomseeker.
QList< GameCVar > gameModifiers
Returns a list of modifiers.
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.
virtual MasterClient * masterClient() const
Signifies that servers can be created for remote console access.
Dialog window allowing user to host a game.
Signifies that servers can have a message of the day.
Game mode representation.
Signifies that servers can provide a URL for potential wad downloads.
virtual void setupConfig(IniSection &config) const
Reimplement if you want to perform some ini initialization manually.
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 Server dialog.
Signifies that servers can be created with a connection password.
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.
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.
Signifies that the plugin implements a master server protocol.
(quint16) Default port for custom server creation.
Abstract base for all MasterClients.
Base class for configuration pages.
(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.
QList< DMFlagsSection > allDMFlags
List of all engine's DM flags or NULL if none.