Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/ERZ/ERZStart.h
338 views
1
#ifndef OBJ_ERZSTART_H
2
#define OBJ_ERZSTART_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectERZStart {
8
RSDK_OBJECT
9
int32 timer;
10
int32 unused1;
11
int32 superDashCooldown;
12
int32 unused2;
13
uint16 sfxClack;
14
uint16 sfxFlyIn;
15
uint16 sfxHullClose;
16
uint16 sfxRumble;
17
EntityFXRuby *fxRuby;
18
EntityPhantomRuby *ruby;
19
EntityChaosEmerald *emeralds[7];
20
EntityPhantomKing *king;
21
EntityKleptoMobile *eggman;
22
};
23
24
// Entity Class
25
struct EntityERZStart {
26
MANIA_CUTSCENE_BASE
27
int32 timer;
28
};
29
30
// Object Struct
31
extern ObjectERZStart *ERZStart;
32
33
// Standard Entity Events
34
void ERZStart_Update(void);
35
void ERZStart_LateUpdate(void);
36
void ERZStart_StaticUpdate(void);
37
void ERZStart_Draw(void);
38
void ERZStart_Create(void *data);
39
void ERZStart_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void ERZStart_EditorDraw(void);
42
void ERZStart_EditorLoad(void);
43
#endif
44
void ERZStart_Serialize(void);
45
46
// Extra Entity Functions
47
void ERZStart_SetupObjects(void);
48
void ERZStart_HandlePlayerHover(EntityPlayer *player, EntityCutsceneSeq *seq, int32 posY);
49
50
bool32 ERZStart_Cutscene_FadeIn(EntityCutsceneSeq *host);
51
bool32 ERZStart_Cutscene_ShrinkRubyWarpFX(EntityCutsceneSeq *host);
52
bool32 ERZStart_Cutscene_EnterKing(EntityCutsceneSeq *host);
53
bool32 ERZStart_Cutscene_KingMovingRuby(EntityCutsceneSeq *host);
54
bool32 ERZStart_Cutscene_KingAttachHornRuby(EntityCutsceneSeq *host);
55
bool32 ERZStart_Cutscene_SetupEggmanReveal(EntityCutsceneSeq *host);
56
bool32 ERZStart_Cutscene_EnterEggman(EntityCutsceneSeq *host);
57
bool32 ERZStart_Cutscene_EggmanKingWrestling(EntityCutsceneSeq *host);
58
bool32 ERZStart_Cutscene_PostWrestleFadeIn(EntityCutsceneSeq *host);
59
bool32 ERZStart_Cutscene_ReturnCamToSonic(EntityCutsceneSeq *host);
60
bool32 ERZStart_Cutscene_PreparePlayerTransform(EntityCutsceneSeq *host);
61
bool32 ERZStart_Cutscene_PlayerTransform(EntityCutsceneSeq *host);
62
bool32 ERZStart_Cutscene_StartFight(EntityCutsceneSeq *host);
63
bool32 ERZStart_Cutscene_Fight(EntityCutsceneSeq *host);
64
65
void ERZStart_RubyHover(void);
66
void ERZStart_RubyMove(void);
67
68
void ERZStart_Player_HandleSuperDash(EntityPlayer *player);
69
void ERZStart_State_PlayerSuperFly(void);
70
void ERZStart_Player_StartSuperFly(void);
71
void ERZStart_State_PlayerRebound(void);
72
73
#endif //! OBJ_ERZSTART_H
74
75