Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/FBZ/ElectroMagnet.h
338 views
1
#ifndef OBJ_ELECTROMAGNET_H
2
#define OBJ_ELECTROMAGNET_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectElectroMagnet {
8
RSDK_OBJECT
9
uint16 aniFrames;
10
Hitbox hitboxPlayer;
11
Vector2 sfxRange;
12
uint8 magnetSfxTimer;
13
bool32 playingMagnetSfx;
14
uint16 sfxMagnet;
15
};
16
17
// Entity Class
18
struct EntityElectroMagnet {
19
RSDK_ENTITY
20
StateMachine(state);
21
Animator animator;
22
uint16 interval;
23
uint16 intervalOffset;
24
uint16 duration;
25
int32 height;
26
int32 shieldRange;
27
int32 timer;
28
bool32 invisible;
29
Hitbox hitboxMagnetRange;
30
Hitbox hitboxShieldRange;
31
};
32
33
// Object Struct
34
extern ObjectElectroMagnet *ElectroMagnet;
35
36
// Standard Entity Events
37
void ElectroMagnet_Update(void);
38
void ElectroMagnet_LateUpdate(void);
39
void ElectroMagnet_StaticUpdate(void);
40
void ElectroMagnet_Draw(void);
41
void ElectroMagnet_Create(void *data);
42
void ElectroMagnet_StageLoad(void);
43
#if GAME_INCLUDE_EDITOR
44
void ElectroMagnet_EditorDraw(void);
45
void ElectroMagnet_EditorLoad(void);
46
#endif
47
void ElectroMagnet_Serialize(void);
48
49
// Extra Entity Functions
50
void ElectroMagnet_State_AwaitInterval(void);
51
void ElectroMagnet_State_MagnetActive(void);
52
53
#endif //! OBJ_ELECTROMAGNET_H
54
55