mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-21 00:55:09 -07:00
[Game] Playmats (#7101)
* [Game] Playmats Took 19 seconds Took 1 minute * [Playmats] Add fixed override and configurable fallbacks to settings. Took 29 minutes Took 43 seconds * Add main to test. Took 1 minute Took 29 seconds * Move settings to own group Took 11 minutes * Some attempts to refresh macOS compositor Took 2 minutes * Try something else Took 17 minutes * Don't manipulate live list Took 11 minutes * Change things about resolution, address comments. Took 45 minutes Took 12 minutes * Comments. Took 14 minutes Took 8 seconds * Re-order settings menu location Took 2 minutes * Rename PlaymatResolution to Info and add enums Took 8 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
74a454552a
commit
9eafd90a91
52 changed files with 1931 additions and 28 deletions
|
|
@ -30,4 +30,4 @@ add_library(libcockatrice_interfaces STATIC ${MOC_SOURCES})
|
|||
|
||||
target_include_directories(libcockatrice_interfaces PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
target_link_libraries(libcockatrice_interfaces PUBLIC ${QT_CORE_MODULE})
|
||||
target_link_libraries(libcockatrice_interfaces PUBLIC libcockatrice_utility ${QT_CORE_MODULE})
|
||||
|
|
|
|||
|
|
@ -1,8 +1,40 @@
|
|||
#ifndef COCKATRICE_INTERFACE_INTERFACE_SETTINGS_PROVIDER_H
|
||||
#define COCKATRICE_INTERFACE_INTERFACE_SETTINGS_PROVIDER_H
|
||||
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <libcockatrice/utility/playmat_params.h>
|
||||
|
||||
/**
|
||||
* @brief Whether playmats are rendered in-game, and for whom.
|
||||
*/
|
||||
enum PlaymatVisibility
|
||||
{
|
||||
PlaymatVisibilityNone = 0, ///< Don't use playmats.
|
||||
PlaymatVisibilityOwnOnly = 1, ///< Show the local player's playmat only.
|
||||
PlaymatVisibilityAll = 2 ///< Show playmats for all players.
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief How the user-level playmat collection interacts with the deck-configured playmat.
|
||||
*/
|
||||
enum PlaymatMode
|
||||
{
|
||||
PlaymatModeOverrideDeck = 0, ///< Always use the collection, ignoring any deck-configured playmat.
|
||||
PlaymatModeFallback = 1, ///< Prefer the deck-configured playmat; fall back to the collection when absent.
|
||||
PlaymatModeDeckOnly = 2 ///< Use only the deck-configured playmat, ignoring the collection.
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief How the user-level fallback playmat list is consulted when a deck has no playmat configured.
|
||||
*/
|
||||
enum PlaymatFallbackMode
|
||||
{
|
||||
PlaymatFallbackModeFixed = 0, ///< Always use the first entry of the fallback list.
|
||||
PlaymatFallbackModeRoundRobin = 1, ///< Cycle through the list, advancing one entry per resolution.
|
||||
PlaymatFallbackModeRandom = 2 ///< Pick a random entry per resolution.
|
||||
};
|
||||
|
||||
class IInterfaceSettingsProvider
|
||||
{
|
||||
|
|
@ -43,6 +75,21 @@ public:
|
|||
[[nodiscard]] virtual bool getLifeCounterAnimationsEnabled() const = 0;
|
||||
[[nodiscard]] virtual bool getBattlefieldFlashEnabled() const = 0;
|
||||
[[nodiscard]] virtual QStringList getUserListExpandedSections() const = 0;
|
||||
|
||||
/** @brief Who gets playmats rendered: @ref PlaymatVisibility. */
|
||||
[[nodiscard]] virtual int getPlaymatVisibility() const = 0;
|
||||
|
||||
/** @brief User-level playmat collection. Used either as a forced playmat
|
||||
* (mode == @ref PlaymatModeOverrideDeck) or as a fallback when a deck has none
|
||||
* (mode == @ref PlaymatModeFallback). */
|
||||
[[nodiscard]] virtual QList<PlaymatInfo> getPlaymatFallbackList() const = 0;
|
||||
|
||||
/** @brief How the fallback list is applied: @ref PlaymatMode. */
|
||||
[[nodiscard]] virtual int getPlaymatMode() const = 0;
|
||||
|
||||
/** @brief How the fallback list is picked from when mode is @ref PlaymatModeFallback:
|
||||
* @ref PlaymatFallbackMode. */
|
||||
[[nodiscard]] virtual int getPlaymatFallbackBehavior() const = 0;
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_INTERFACE_INTERFACE_SETTINGS_PROVIDER_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue