
# Conflicts: # .github/workflows/ci-build.yml # .github/workflows/codeql.yml # .github/workflows/commit-checker.yml # .github/workflows/release-linux-legacy.yml # .github/workflows/release-linux.yml # .github/workflows/release-macos.yml # .github/workflows/release-windows-store.yml # .github/workflows/release-windows.yml # .github/workflows/upload-cdn.yml # .github/workflows/upload-gog.yml # .github/workflows/upload-steam.yml # src/console_cmds.cpp # src/core/math_func.hpp # src/fios.cpp # src/fios.h # src/intro_gui.cpp # src/network/network_server.cpp # src/openttd.cpp # src/settings.cpp # src/settings_gui.cpp # src/settings_internal.h # src/settings_table.cpp # src/settings_type.h # src/table/settings.h.preamble # src/table/settings/company_settings.ini # src/table/settings/currency_settings.ini # src/table/settings/difficulty_settings.ini # src/table/settings/economy_settings.ini # src/table/settings/game_settings.ini # src/table/settings/gui_settings.ini # src/table/settings/linkgraph_settings.ini # src/table/settings/locale_settings.ini # src/table/settings/misc_settings.ini # src/table/settings/multimedia_settings.ini # src/table/settings/network_private_settings.ini # src/table/settings/network_settings.ini # src/table/settings/news_display_settings.ini # src/table/settings/old_gameopt_settings.ini # src/table/settings/pathfinding_settings.ini # src/table/settings/script_settings.ini # src/table/settings/win32_settings.ini # src/table/settings/window_settings.ini # src/table/settings/world_settings.ini # src/viewport.cpp # src/viewport_func.h # src/window.cpp
89 lines
2.9 KiB
C++
89 lines
2.9 KiB
C++
/*
|
|
* This file is part of OpenTTD.
|
|
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
|
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/** @file social_integration.h Interface definitions for game to report/respond to social integration. */
|
|
|
|
#ifndef SOCIAL_INTEGRATION_H
|
|
#define SOCIAL_INTEGRATION_H
|
|
|
|
class SocialIntegrationPlugin {
|
|
public:
|
|
enum State {
|
|
RUNNING, ///< The plugin is successfully loaded and running.
|
|
|
|
FAILED, ///< The plugin failed to initialize.
|
|
PLATFORM_NOT_RUNNING, ///< The plugin failed to initialize because the Social Platform is not running.
|
|
UNLOADED, ///< The plugin is unloaded upon request.
|
|
DUPLICATE, ///< Another plugin of the same Social Platform is already loaded.
|
|
UNSUPPORTED_API, ///< The plugin does not support the current API version.
|
|
INVALID_SIGNATURE, ///< The signature of the plugin is invalid.
|
|
};
|
|
|
|
std::string basepath; ///< Base path of the plugin.
|
|
|
|
std::string social_platform = "unknown"; ///< Social platform this plugin is for.
|
|
std::string name = ""; ///< Name of the plugin.
|
|
std::string version = ""; ///< Version of the plugin.
|
|
|
|
State state = FAILED; ///< Result of the plugin's init function.
|
|
|
|
SocialIntegrationPlugin(const std::string &basepath) : basepath(basepath) {}
|
|
};
|
|
|
|
class SocialIntegration {
|
|
public:
|
|
/**
|
|
* Get the list of loaded social integration plugins.
|
|
*/
|
|
static std::vector<SocialIntegrationPlugin *> GetPlugins();
|
|
|
|
static size_t GetPluginCount();
|
|
static char *LogPluginSummary(char *buffer, const char *last);
|
|
|
|
/**
|
|
* Initialize the social integration system, loading any social integration plugins that are available.
|
|
*/
|
|
static void Initialize();
|
|
|
|
/**
|
|
* Shutdown the social integration system, and all social integration plugins that are loaded.
|
|
*/
|
|
static void Shutdown();
|
|
|
|
/**
|
|
* Allow any social integration library to handle their own events.
|
|
*/
|
|
static void RunCallbacks();
|
|
|
|
/**
|
|
* Event: user entered the main menu.
|
|
*/
|
|
static void EventEnterMainMenu();
|
|
|
|
/**
|
|
* Event: user entered the Scenario Editor.
|
|
*/
|
|
static void EventEnterScenarioEditor(uint map_width, uint map_height);
|
|
|
|
/**
|
|
* Event: user entered a singleplayer game.
|
|
*/
|
|
static void EventEnterSingleplayer(uint map_width, uint map_height);
|
|
|
|
/**
|
|
* Event: user entered a multiplayer game.
|
|
*/
|
|
static void EventEnterMultiplayer(uint map_width, uint map_height);
|
|
|
|
/**
|
|
* Event: user is joining a multiplayer game.
|
|
*/
|
|
static void EventJoiningMultiplayer();
|
|
};
|
|
|
|
#endif /* SOCIAL_INTEGRATION_H */
|