Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Credits/EncoreGoodEnd.h
338 views
1
#ifndef OBJ_ENCOREGOODEND_H
2
#define OBJ_ENCOREGOODEND_H
3
4
#include "Game.h"
5
6
#if MANIA_USE_PLUS
7
8
typedef enum {
9
E_END_DECOR_STOOL,
10
E_END_DECOR_ICECREAM_PINK,
11
E_END_DECOR_ICECREAM_GREEN,
12
E_END_DECOR_ICECREAM_CONE,
13
E_END_DECOR_KING,
14
E_END_DECOR_RAYSPIN,
15
E_END_DECOR_RAYSHOCKED,
16
E_END_DECOR_SONICLAYDOWN,
17
E_END_DECOR_SONICSHOCKED,
18
E_END_DECOR_KNUXBREATHE,
19
E_END_DECOR_KNUXCLINK,
20
E_END_DECOR_KNUXCLINKG,
21
E_END_DECOR_KNUXSHOCKED,
22
E_END_DECOR_KNUXSITDOWN,
23
E_END_DECOR_KNUXSITDOWNG,
24
E_END_DECOR_MIGHTYBREATHE,
25
E_END_DECOR_MIGHTYCLINK,
26
E_END_DECOR_MIGHTYCLINKG,
27
E_END_DECOR_MIGHTYSITDOWN,
28
E_END_DECOR_MIGHTYSITDOWNG,
29
E_END_DECOR_MIGHTYSHOCKED,
30
E_END_DECOR_TAILSSHOCKED,
31
E_END_DECOR_TAILSSPIN,
32
E_END_DECOR_STOOL_STILL,
33
E_END_DECOR_KNUXICECREAMSHOCK,
34
E_END_DECOR_MIGHTYICECREAMSHOCK,
35
E_END_DECOR_LETTERBOX1,
36
E_END_DECOR_LETTERBOX2,
37
} EncoreGoodEndDecorTypes;
38
39
typedef enum {
40
E_END_KING,
41
E_END_STOOLT,
42
E_END_STOOLK,
43
E_END_STOOLM,
44
E_END_STOOLR,
45
E_END_SONIC,
46
E_END_TAILS,
47
E_END_KNUX,
48
E_END_MIGHTY,
49
E_END_RAY,
50
E_END_GLASSK,
51
E_END_GLASSM,
52
E_END_ICECREAM_CONE,
53
E_END_ICECREAM_PINK,
54
E_END_ICECREAM_GREEN,
55
E_END_ICECREAM_PINK2,
56
E_END_COUNT,
57
} EncoreGoodEndDecorIDs;
58
59
// Object Class
60
struct ObjectEncoreGoodEnd {
61
RSDK_OBJECT
62
int32 unused1;
63
uint16 unused2;
64
uint16 sfxSnap;
65
int32 unused3;
66
EntityDecoration *decorations[16];
67
};
68
69
// Entity Class
70
struct EntityEncoreGoodEnd {
71
MANIA_CUTSCENE_BASE
72
int32 unused1;
73
};
74
75
// Object Struct
76
extern ObjectEncoreGoodEnd *EncoreGoodEnd;
77
78
// Standard Entity Events
79
void EncoreGoodEnd_Update(void);
80
void EncoreGoodEnd_LateUpdate(void);
81
void EncoreGoodEnd_StaticUpdate(void);
82
void EncoreGoodEnd_Draw(void);
83
void EncoreGoodEnd_Create(void *data);
84
void EncoreGoodEnd_StageLoad(void);
85
#if GAME_INCLUDE_EDITOR
86
void EncoreGoodEnd_EditorDraw(void);
87
void EncoreGoodEnd_EditorLoad(void);
88
#endif
89
void EncoreGoodEnd_Serialize(void);
90
91
// Extra Entity Functions
92
void EncoreGoodEnd_SetupDecorations(void);
93
94
void EncoreGoodEnd_SetupPlayer(int32 playerID);
95
void EncoreGoodEnd_StatePlayer_MoveToPos(void);
96
void EncoreGoodEnd_StatePlayer_EndingIdle(void);
97
void EncoreGoodEnd_StatePlayer_EndingSonic(void);
98
99
bool32 EncoreGoodEnd_Cutscene_MoveToPlace(EntityCutsceneSeq *host);
100
bool32 EncoreGoodEnd_Cutscene_WaitForMovementFinish(EntityCutsceneSeq *host);
101
bool32 EncoreGoodEnd_Cutscene_ClinkGlasses(EntityCutsceneSeq *host);
102
bool32 EncoreGoodEnd_Cutscene_KingAppear(EntityCutsceneSeq *host);
103
bool32 EncoreGoodEnd_Cutscene_ThanksForPlaying(EntityCutsceneSeq *host);
104
bool32 EncoreGoodEnd_Cutscene_FinishCutscene(EntityCutsceneSeq *host);
105
106
void EncoreGoodEnd_Cutscene_SkipCB(void);
107
108
#endif
109
110
#endif //! OBJ_ENCOREGOODEND_H
111
112