Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/SPZ/MicDrop.h
338 views
1
#ifndef OBJ_MICDROP_H
2
#define OBJ_MICDROP_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectMicDrop {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxRange;
11
uint16 aniFrames;
12
uint16 sfxElectrify;
13
};
14
15
// Entity Class
16
struct EntityMicDrop {
17
RSDK_ENTITY
18
StateMachine(state);
19
Animator bodyAnimator;
20
Animator wireAnimator;
21
Vector2 startPos;
22
uint16 distance;
23
int32 timer;
24
int32 swingSpeed;
25
int32 swingVel;
26
int32 radius;
27
int32 swingPos;
28
};
29
30
// Object Struct
31
extern ObjectMicDrop *MicDrop;
32
33
// Standard Entity Events
34
void MicDrop_Update(void);
35
void MicDrop_LateUpdate(void);
36
void MicDrop_StaticUpdate(void);
37
void MicDrop_Draw(void);
38
void MicDrop_Create(void *data);
39
void MicDrop_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void MicDrop_EditorDraw(void);
42
void MicDrop_EditorLoad(void);
43
#endif
44
void MicDrop_Serialize(void);
45
46
// Extra Entity Functions
47
void MicDrop_DebugSpawn(void);
48
void MicDrop_DebugDraw(void);
49
50
void MicDrop_CheckPlayerCollisions(void);
51
void MicDrop_CheckOffScreen(void);
52
53
void MicDrop_State_Init(void);
54
void MicDrop_State_CheckForPlayer(void);
55
void MicDrop_State_DropDown(void);
56
void MicDrop_State_DropRecoil(void);
57
void MicDrop_State_Idle(void);
58
void MicDrop_State_Swinging(void);
59
void MicDrop_State_Electrify(void);
60
61
#endif //! OBJ_MICDROP_H
62
63