1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-16 10:19:47 +02:00
vcmi/lib/Color.h
Ivan Savenko 0c07384293 Refactoring of serialization versioning handling
- Removed 'version' field from serialize() method
- Handler classes - Binary(De)Serializer now have 'version' field
- Serialization versioning now uses named enum

Save compatibility with 1.4.X saves should be intact
2024-01-20 20:34:51 +02:00

63 lines
864 B
C++

/*
* Color.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
VCMI_LIB_NAMESPACE_BEGIN
/// An object that represents RGBA color
class ColorRGBA
{
public:
enum : uint8_t
{
ALPHA_OPAQUE = 255,
ALPHA_TRANSPARENT = 0,
};
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t a;
//constructors
constexpr ColorRGBA()
:r(0)
,g(0)
,b(0)
,a(0)
{
}
constexpr ColorRGBA(uint8_t r, uint8_t g, uint8_t b, uint8_t a)
: r(r)
, g(g)
, b(b)
, a(a)
{}
constexpr ColorRGBA(uint8_t r, uint8_t g, uint8_t b)
: r(r)
, g(g)
, b(b)
, a(ALPHA_OPAQUE)
{}
template <typename Handler>
void serialize(Handler &h)
{
h & r;
h & g;
h & b;
h & a;
}
};
VCMI_LIB_NAMESPACE_END