Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/UFO/UFO_Setup.h
338 views
1
#ifndef OBJ_UFO_SETUP_H
2
#define OBJ_UFO_SETUP_H
3
4
#include "Game.h"
5
6
typedef enum {
7
UFO_TFLAGS_NORMAL,
8
UFO_TFLAGS_BUMPER,
9
UFO_TFLAGS_GRITTYGROUND,
10
} TileFlagsUFO;
11
12
// Object Class
13
struct ObjectUFO_Setup {
14
RSDK_OBJECT
15
StateMachine(deformCB);
16
int32 timedOut;
17
#if MANIA_USE_PLUS
18
bool32 encoreStage;
19
#endif
20
int32 machLevel;
21
int32 scoreBonus;
22
int32 machPoints;
23
int32 rings;
24
int32 timer;
25
int32 ringFrame;
26
int32 ringPan;
27
int32 spherePan;
28
int32 specialStageID;
29
int32 machQuotas[3];
30
uint8 playFieldLayer;
31
uint16 sfxBlueSphere;
32
uint16 sfxSSExit;
33
uint16 sfxEmerald;
34
uint16 sfxEvent;
35
bool32 resetToTitle;
36
};
37
38
// Entity Class
39
struct EntityUFO_Setup {
40
RSDK_ENTITY
41
StateMachine(state);
42
int32 timer;
43
color fadeColor;
44
};
45
46
// Object Struct
47
extern ObjectUFO_Setup *UFO_Setup;
48
49
// Standard Entity Events
50
void UFO_Setup_Update(void);
51
void UFO_Setup_LateUpdate(void);
52
void UFO_Setup_StaticUpdate(void);
53
void UFO_Setup_Draw(void);
54
void UFO_Setup_Create(void *data);
55
void UFO_Setup_StageLoad(void);
56
#if GAME_INCLUDE_EDITOR
57
void UFO_Setup_EditorDraw(void);
58
void UFO_Setup_EditorLoad(void);
59
#endif
60
void UFO_Setup_Serialize(void);
61
62
// Extra Entity Functions
63
void UFO_Setup_DrawHook_PrepareDrawingFX(void);
64
void UFO_Setup_Scanline_Playfield(ScanlineInfo *scanlines);
65
void UFO_Setup_Scanline_3DFloor(ScanlineInfo *scanlines);
66
void UFO_Setup_Scanline_3DRoof(ScanlineInfo *scanlines);
67
68
void UFO_Setup_PlaySphereSfx(void);
69
void UFO_Setup_Finish_Win(void);
70
void UFO_Setup_Finish_Fail(void);
71
void UFO_Setup_Deform_UFO3(void);
72
void UFO_Setup_Deform_UFO4(void);
73
void UFO_Setup_Deform_UFO5(void);
74
void UFO_Setup_State_ShowStartMessage(void);
75
void UFO_Setup_State_FinishFadeout(void);
76
void UFO_Setup_State_HandleRingDrain(void);
77
void UFO_Setup_State_TimedOver(void);
78
79
#endif //! OBJ_UFO_SETUP_H
80
81