24 #ifndef __ENGINEPLUGIN_H__ 25 #define __ENGINEPLUGIN_H__ 27 #include <QtContainerFwd> 29 #include <QStringList> 34 #include "serverapi/textprovider.h" 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(); \ 263 unsigned int abiVersion;
264 bool allowsConnectPassword;
266 bool allowsJoinPassword;
268 bool allowsRConPassword;
273 quint16 defaultServerPort;
276 bool inGameFileDownloads;
277 QVector<IRCNetworkEntity> ircChannels;
281 quint8 refreshThreshold;
283 bool supportsRandomMapRotation;
285 unsigned int version;
286 bool demoExtensionAutomatic;
287 QString demoExtension;
318 QString clientExeName;
319 QString serverExeName;
320 QStringList gameFileSearchSuffixes;
330 bool allowsClientSlots;
331 bool allowsPlayerSlots;
334 QString canonicalName;
338 bool hasBroadcast()
const 340 return broadcast != NULL;
343 bool hasMasterClient()
const 345 return masterClient != NULL;
361 void init(
const char* name,
const char*
const icon[], ...);
366 virtual ConfigPage* configuration(QWidget *parent);
388 return QList<CreateServerDialogPage*>();
391 const Data *data()
const {
return d; }
392 const QPixmap &icon()
const {
return *d->icon; }
398 virtual QList<DMFlagsSection> dmFlags()
const;
418 virtual QList<GameMode> gameModes()
const;
422 virtual QList<GameCVar> gameModifiers()
const;
428 virtual QList<GameCVar>
limits(
const GameMode& mode)
const {
return QList<GameCVar>(); }
433 void masterHost(QString &host,
unsigned short &port)
const;
448 QString nameCanonical()
const;
457 virtual ServerPtr server(
const QHostAddress &address,
unsigned short port)
const;
475 virtual void start();
482 virtual ServerPtr mkServer(
const QHostAddress &address,
unsigned short port)
const = 0;
483 void initDefaultGameFiles();
484 void setGameExeFactory(QSharedPointer<GameExeFactory> factory);
489 QStringList collectKnownPaths(
const IniSection &ini)
const;
493 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.
QScopedPointer< TextProvider > aboutProvider
Description of the plugin, intended to be displayed in the "About" dialog.
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.
Provides a description to be shown in the "About" menu.
Dialog window allowing user to create a game.
File name for game's client (main) executable.
Tells the create game box that this game allows to modify UPnP port.
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.