Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/DCEvent.h
338 views
1
#ifndef OBJ_DCEVENT_H
2
#define OBJ_DCEVENT_H
3
4
#include "Game.h"
5
6
typedef enum {
7
DCEVENT_EGGMAN,
8
DCEVENT_BOMB,
9
DCEVENT_BUBBLE,
10
} DCEventTypes;
11
12
typedef enum {
13
DCEVENT_EGGMAN_PLACEBOMB,
14
DCEVENT_EGGMAN_SWIMMING,
15
} DCEventEggmanTypes;
16
17
// Object Class
18
struct ObjectDCEvent {
19
RSDK_OBJECT
20
Hitbox unusedHitbox1;
21
Hitbox hitboxBomb;
22
bool32 canExplodeBombs;
23
uint16 aniFrames;
24
uint16 eggmanFrames;
25
uint16 sfxExplosion;
26
uint16 sfxRumble;
27
uint16 sfxImpact6;
28
uint16 sfxImpact4;
29
};
30
31
// Entity Class
32
struct EntityDCEvent {
33
RSDK_ENTITY
34
StateMachine(state);
35
uint8 numChildren;
36
uint8 type;
37
int32 remainingBombs;
38
int32 startY;
39
int32 timer;
40
Animator animator;
41
};
42
43
// Object Struct
44
extern ObjectDCEvent *DCEvent;
45
46
// Standard Entity Events
47
void DCEvent_Update(void);
48
void DCEvent_LateUpdate(void);
49
void DCEvent_StaticUpdate(void);
50
void DCEvent_Draw(void);
51
void DCEvent_Create(void *data);
52
void DCEvent_StageLoad(void);
53
#if GAME_INCLUDE_EDITOR
54
void DCEvent_EditorDraw(void);
55
void DCEvent_EditorLoad(void);
56
#endif
57
void DCEvent_Serialize(void);
58
59
// Extra Entity Functions
60
void DCEvent_State_Collapse(void);
61
void DCEvent_StateEggmanBomber_AwaitPlayer(void);
62
63
void DCEvent_Input_MoveRight(void);
64
void DCEvent_Input_LookDown(void);
65
66
void DCEvent_StateEggmanBomber_WaitForLookDown(void);
67
void DCEvent_StateEggmanBomber_Swimming(void);
68
void DCEvent_StateEggmanBomber_PlaceBomb(void);
69
void DCEvent_StateEggmanBomber_PlacedAllBombs(void);
70
71
void DCEvent_StateEggmanSwim_AwaitPlayer(void);
72
void DCEvent_StateEggmanSwim_Swimming(void);
73
74
void DCEvent_State_Bomb(void);
75
void DCEvent_State_BombExplode(void);
76
77
#endif //! OBJ_DCEVENT_H
78
79