Etterna
0.74.4
Loading...
Searching...
No Matches
src
Etterna
Actor
Menus
MusicWheelItem.h
1
#ifndef MUSIC_WHEEL_ITEM_H
2
#define MUSIC_WHEEL_ITEM_H
3
4
#include "Etterna/Actor/Base/ActorFrame.h"
5
#include "Etterna/Actor/Base/AutoActor.h"
6
#include "Etterna/Actor/Base/BitmapText.h"
7
#include "Etterna/Models/Misc/GameCommand.h"
8
#include "TextBanner.h"
9
#include "WheelItemBase.h"
10
11
class
Song
;
12
13
struct
MusicWheelItemData
;
14
15
enum
MusicWheelItemType
16
{
17
MusicWheelItemType_Song,
18
MusicWheelItemType_SectionExpanded,
19
MusicWheelItemType_SectionCollapsed,
20
MusicWheelItemType_Roulette,
21
MusicWheelItemType_Sort,
22
MusicWheelItemType_Mode,
23
MusicWheelItemType_Random,
24
MusicWheelItemType_Portal,
25
MusicWheelItemType_Custom,
26
NUM_MusicWheelItemType,
27
MusicWheelItemType_Invalid,
28
};
29
auto
30
MusicWheelItemTypeToString(MusicWheelItemType i) ->
const
std::string&;
32
class
MusicWheelItem
final :
public
WheelItemBase
33
{
34
public
:
35
MusicWheelItem
(
const
std::string& sType =
"MusicWheelItem"
);
36
MusicWheelItem
(
const
MusicWheelItem
& cpy);
37
~MusicWheelItem
()
override
;
38
[[nodiscard]]
auto
Copy()
const
->
MusicWheelItem
*
override
39
{
40
return
new
MusicWheelItem
(*
this
);
41
}
42
43
void
LoadFromWheelItemData(
const
WheelItemBaseData
* pWID,
44
int
iIndex,
45
bool
bHasFocus,
46
int
iDrawIndex)
override
;
47
void
HandleMessage(
const
Message
& msg)
override
;
48
void
RefreshGrades();
49
50
private
:
51
AutoActor
m_sprColorPart[NUM_MusicWheelItemType];
52
AutoActor
m_sprNormalPart[NUM_MusicWheelItemType];
53
AutoActor
m_sprOverPart[NUM_MusicWheelItemType];
54
55
TextBanner
m_TextBanner;
// used by Type_Song instead of m_pText
56
BitmapText
* m_pText[NUM_MusicWheelItemType];
57
BitmapText
* m_pTextSectionCount;
58
AutoActor
m_pGradeDisplay;
59
};
60
61
struct
MusicWheelItemData
:
WheelItemBaseData
62
{
63
MusicWheelItemData
()
64
: m_sLabel(
""
)
65
{
66
}
67
MusicWheelItemData
(WheelItemDataType type,
68
Song
* pSong,
69
const
std::string& sSectionName,
70
const
RageColor
& color,
71
int
iSectionCount);
72
73
Song
* m_pSong{
nullptr
};
74
75
// for TYPE_SECTION
76
int
m_iSectionCount{ 0 };
77
78
// for TYPE_SORT
79
std::string m_sLabel;
80
std::unique_ptr<GameCommand> m_pAction;
81
};
82
83
#endif
AutoActor
A smart pointer for Actor.
Definition
AutoActor.h:13
BitmapText
An actor that holds a Font and draws text to the screen.
Definition
BitmapText.h:11
MusicWheelItem
An item on the MusicWheel.
Definition
MusicWheelItem.h:33
Song
Holds all music metadata and steps for one song.
Definition
Song.h:65
TextBanner
Definition
TextBanner.h:12
WheelItemBase
An item on the wheel.
Definition
WheelItemBase.h:42
Message
Definition
MessageManager.h:96
MusicWheelItemData
Definition
MusicWheelItem.h:62
RageColor
Definition
RageTypes.h:332
WheelItemBaseData
Definition
WheelItemBase.h:30
Generated by
1.9.8