Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Menu/UIButtonPrompt.h
338 views
1
#ifndef OBJ_UIBUTTONPROMPT_H
2
#define OBJ_UIBUTTONPROMPT_H
3
4
#include "Game.h"
5
6
typedef enum {
7
UIBUTTONPROMPT_NONE,
8
UIBUTTONPROMPT_KEYBOARD,
9
UIBUTTONPROMPT_XBOX,
10
UIBUTTONPROMPT_PS4,
11
UIBUTTONPROMPT_SWITCH,
12
UIBUTTONPROMPT_SATURN_BLACK,
13
UIBUTTONPROMPT_SATURN_WHITE,
14
UIBUTTONPROMPT_JOYCON_L,
15
UIBUTTONPROMPT_JOYCON_R,
16
UIBUTTONPROMPT_KEYBOARD_FR,
17
UIBUTTONPROMPT_KEYBOARD_IT,
18
UIBUTTONPROMPT_KEYBOARD_GE,
19
UIBUTTONPROMPT_KEYBOARD_SP,
20
} UIButtonPromptTypes;
21
22
typedef enum {
23
UIBUTTONPROMPT_ANCHOR_NONE,
24
UIBUTTONPROMPT_ANCHOR_TOPLEFT_ROW1,
25
UIBUTTONPROMPT_ANCHOR_TOPRIGHT_ROW1,
26
UIBUTTONPROMPT_ANCHOR_TOPLEFT_ROW2,
27
UIBUTTONPROMPT_ANCHOR_TOPRIGHT_ROW2,
28
} UIButtonPromptAnchors;
29
30
typedef enum {
31
UIBUTTONPROMPT_BUTTON_A,
32
UIBUTTONPROMPT_BUTTON_B,
33
UIBUTTONPROMPT_BUTTON_X,
34
UIBUTTONPROMPT_BUTTON_Y,
35
UIBUTTONPROMPT_BUTTON_START,
36
UIBUTTONPROMPT_BUTTON_SELECT,
37
} UIButtonPromptButtons;
38
39
// Object Class
40
struct ObjectUIButtonPrompt {
41
RSDK_OBJECT
42
int32 type;
43
int32 inputSlot;
44
uint16 aniFrames;
45
};
46
47
// Entity Class
48
struct EntityUIButtonPrompt {
49
RSDK_ENTITY
50
Entity *parent;
51
StateMachine(state);
52
int32 timer;
53
Vector2 startPos;
54
int32 promptID;
55
int32 buttonID;
56
uint8 headingAnchor;
57
int32 unused;
58
int32 prevPrompt;
59
int32 prevButton;
60
int32 mappings;
61
bool32 textVisible;
62
int32 scaleMax;
63
int32 scaleSpeed;
64
bool32 disableScale;
65
Vector2 touchSize;
66
Vector2 touchPos;
67
bool32 touched;
68
Animator decorAnimator;
69
Animator buttonAnimator;
70
Animator promptAnimator;
71
uint16 textSprite;
72
};
73
74
// Object Struct
75
extern ObjectUIButtonPrompt *UIButtonPrompt;
76
77
// Standard Entity Events
78
void UIButtonPrompt_Update(void);
79
void UIButtonPrompt_LateUpdate(void);
80
void UIButtonPrompt_StaticUpdate(void);
81
void UIButtonPrompt_Draw(void);
82
void UIButtonPrompt_Create(void *data);
83
void UIButtonPrompt_StageLoad(void);
84
#if GAME_INCLUDE_EDITOR
85
void UIButtonPrompt_EditorDraw(void);
86
void UIButtonPrompt_EditorLoad(void);
87
#endif
88
void UIButtonPrompt_Serialize(void);
89
90
// Extra Entity Functions
91
int32 UIButtonPrompt_GetButtonMappings(int32 input, int32 button);
92
int32 UIButtonPrompt_GetGamepadType(void);
93
uint8 UIButtonPrompt_MappingsToFrame(int32 mappings);
94
95
bool32 UIButtonPrompt_CheckTouch(void);
96
void UIButtonPrompt_SetButtonSprites(void);
97
void UIButtonPrompt_State_CheckIfSelected(void);
98
void UIButtonPrompt_State_Selected(void);
99
100
#endif //! OBJ_UIBUTTONPROMPT_H
101
102