OpenBarnyard
 
Loading...
Searching...
No Matches
AFade.h
Go to the documentation of this file.
1#pragma once
3
4#include <Toshi/TColor.h>
5#include <Toshi/TQList.h>
7
8class AFade : public Toshi::TQList<AFade>::TNode
9{
10public:
11 friend class AFadeManager;
12
13 struct Color
14 {
19
20 constexpr Color() = default;
21
22 constexpr Color( TUINT8 a_uiA, TUINT8 a_uiR, TUINT8 a_uiG, TUINT8 a_uiB )
23 : A( a_uiA ), R( a_uiR ), G( a_uiG ), B( a_uiB ) {}
24
25 constexpr Color( const Toshi::TColor& a_rColor )
26 : A( a_rColor.A ), R( a_rColor.G ), G( a_rColor.G ), B( a_rColor.B ) {}
27
28 constexpr Color( TUINT32 a_uiColor )
29 : A( TCOLOR_GET_A( a_uiColor ) ), R( TCOLOR_GET_R( a_uiColor ) ), G( TCOLOR_GET_G( a_uiColor ) ), B( TCOLOR_GET_B( a_uiColor ) )
30 {}
31
32 constexpr TUINT32 GetTColor32() const
33 {
34 return TCOLOR_ALPHA( R, G, B, A );
35 }
36 };
37
38public:
39 AFade();
40 virtual ~AFade() = default;
41
42 void Update( TFLOAT a_fDeltaTime )
43 {
44 m_fCurrentTime += a_fDeltaTime;
45 }
46
47 void SetFadeTime( TFLOAT a_fFadeTime );
48 void SetFadeFromColor( const Color& a_rFadeFromColor );
49 void SetFadeToColor( const Color& a_rFadeToColor );
50
51 Color* GetCurrentColor( Color& a_rColor );
52 TBOOL IsStillFading( TBOOL a_bThrowFadeOver );
53
55 {
56 return m_Overlay;
57 }
58
59 Toshi::TEmitter<AFade, TBOOL>& GetFadeOverEmitter()
60 {
61 return m_FadeOverEmitter;
62 }
63
64private:
65 Color m_FadeFromColor;
66 Color m_FadeToColor;
67 TFLOAT m_fCurrentTime;
68 TFLOAT m_fFadeTime;
69 AGUI2Rectangle m_Overlay;
70 Toshi::TEmitter<AFade, TBOOL> m_FadeOverEmitter;
71};
#define TCOLOR_GET_A(COLOR)
Definition TColor.h:10
#define TCOLOR_GET_G(COLOR)
Definition TColor.h:12
#define TCOLOR_GET_B(COLOR)
Definition TColor.h:13
#define TCOLOR_ALPHA(R, G, B, A)
Definition TColor.h:5
#define TCOLOR_GET_R(COLOR)
Definition TColor.h:11
uint8_t TUINT8
Definition Typedefs.h:17
float TFLOAT
Definition Typedefs.h:4
uint32_t TUINT32
Definition Typedefs.h:13
bool TBOOL
Definition Typedefs.h:6
void SetFadeToColor(const Color &a_rFadeToColor)
Definition AFade.cpp:25
void SetFadeTime(TFLOAT a_fFadeTime)
Definition AFade.cpp:15
TBOOL IsStillFading(TBOOL a_bThrowFadeOver)
Definition AFade.cpp:41
Color * GetCurrentColor(Color &a_rColor)
Definition AFade.cpp:30
virtual ~AFade()=default
void Update(TFLOAT a_fDeltaTime)
Definition AFade.h:42
void SetFadeFromColor(const Color &a_rFadeFromColor)
Definition AFade.cpp:20
friend class AFadeManager
Definition AFade.h:11
AFade()
Definition AFade.cpp:10
AGUI2Rectangle & GetRectangleElement()
Definition AFade.h:54
Toshi::TEmitter< AFade, TBOOL > & GetFadeOverEmitter()
Definition AFade.h:59
TUINT8 G
Definition AFade.h:17
TUINT8 A
Definition AFade.h:15
constexpr Color(TUINT32 a_uiColor)
Definition AFade.h:28
constexpr Color(TUINT8 a_uiA, TUINT8 a_uiR, TUINT8 a_uiG, TUINT8 a_uiB)
Definition AFade.h:22
TUINT8 R
Definition AFade.h:16
constexpr Color()=default
constexpr TUINT32 GetTColor32() const
Definition AFade.h:32
TUINT8 B
Definition AFade.h:18
constexpr Color(const Toshi::TColor &a_rColor)
Definition AFade.h:25