Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Cutscene/RubyPortal.h
338 views
1
#ifndef OBJ_RUBYPORTAL_H
2
#define OBJ_RUBYPORTAL_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectRubyPortal {
8
RSDK_OBJECT
9
Hitbox hitbox;
10
uint16 aniFrames;
11
#if MANIA_USE_PLUS
12
bool32 openPortal;
13
#endif
14
};
15
16
// Entity Class
17
struct EntityRubyPortal {
18
RSDK_ENTITY
19
StateMachine(state);
20
int32 timer;
21
Animator animator;
22
Hitbox hitbox;
23
};
24
25
// Object Struct
26
extern ObjectRubyPortal *RubyPortal;
27
28
// Standard Entity Events
29
void RubyPortal_Update(void);
30
void RubyPortal_LateUpdate(void);
31
void RubyPortal_StaticUpdate(void);
32
void RubyPortal_Draw(void);
33
void RubyPortal_Create(void *data);
34
void RubyPortal_StageLoad(void);
35
#if GAME_INCLUDE_EDITOR
36
void RubyPortal_EditorDraw(void);
37
void RubyPortal_EditorLoad(void);
38
#endif
39
void RubyPortal_Serialize(void);
40
41
// Extra Entity Functions
42
#if MANIA_USE_PLUS
43
void RubyPortal_HandleTileDestruction(void);
44
#endif
45
void RubyPortal_State_AwaitOpenTMZ2(void);
46
void RubyPortal_State_Opening(void);
47
void RubyPortal_State_Opened(void);
48
#if MANIA_USE_PLUS
49
void RubyPortal_State_SaveGameState(void);
50
#endif
51
void RubyPortal_State_Open_WarpDoor(void);
52
void RubyPortal_State_Open_Cutscene(void);
53
#if MANIA_USE_PLUS
54
void RubyPortal_State_EncoreEnd(void);
55
void RubyPortal_State_EncoreRampage(void);
56
#endif
57
58
#endif //! OBJ_RUBYPORTAL_H
59
60