Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MMZ/BuzzSaw.h
338 views
1
#ifndef OBJ_BUZZSAW_H
2
#define OBJ_BUZZSAW_H
3
4
#include "Game.h"
5
6
typedef enum {
7
BUZZSAW_ATTACHED,
8
BUZZSAW_STRAY,
9
} BuzzsawTypes;
10
11
// Object Class
12
struct ObjectBuzzSaw {
13
RSDK_OBJECT
14
uint16 aniFrames;
15
Hitbox hitbox;
16
Vector2 unused1;
17
int32 unused2;
18
};
19
20
// Entity Class
21
struct EntityBuzzSaw {
22
RSDK_ENTITY
23
StateMachine(state);
24
int32 type;
25
Vector2 amplitude;
26
int32 speed;
27
Vector2 startPos;
28
Vector2 drawPos;
29
Animator animator;
30
};
31
32
// Object Struct
33
extern ObjectBuzzSaw *BuzzSaw;
34
35
// Standard Entity Events
36
void BuzzSaw_Update(void);
37
void BuzzSaw_LateUpdate(void);
38
void BuzzSaw_StaticUpdate(void);
39
void BuzzSaw_Draw(void);
40
void BuzzSaw_Create(void *data);
41
void BuzzSaw_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void BuzzSaw_EditorDraw(void);
44
void BuzzSaw_EditorLoad(void);
45
#endif
46
void BuzzSaw_Serialize(void);
47
48
// Extra Entity Functions
49
bool32 BuzzSaw_SfxCheck_SawSus(void);
50
void BuzzSaw_SfxUpdate_SawSus(int32 sfx);
51
52
void BuzzSaw_CheckPlayerCollisions(void);
53
54
void BuzzSaw_State_Attached(void);
55
56
void BuzzSaw_State_Stray_Waiting(void);
57
void BuzzSaw_State_Stray_Released(void);
58
void BuzzSaw_State_FreeMove_Reset(void);
59
60
#endif //! OBJ_BUZZSAW_H
61
62