Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/FBZ/Clucker.h
338 views
1
#ifndef OBJ_CLUCKER_H
2
#define OBJ_CLUCKER_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectClucker {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxRange;
11
Hitbox hitboxSolid;
12
Hitbox hitboxEgg;
13
uint16 aniFrames;
14
uint16 sfxShot;
15
};
16
17
// Entity Class
18
struct EntityClucker {
19
RSDK_ENTITY
20
StateMachine(state);
21
int32 yOffset;
22
int32 xOffset;
23
uint8 timer;
24
uint16 delay;
25
bool32 hasParent;
26
Animator animator;
27
};
28
29
// Object Struct
30
extern ObjectClucker *Clucker;
31
32
// Standard Entity Events
33
void Clucker_Update(void);
34
void Clucker_LateUpdate(void);
35
void Clucker_StaticUpdate(void);
36
void Clucker_Draw(void);
37
void Clucker_Create(void *data);
38
void Clucker_StageLoad(void);
39
#if GAME_INCLUDE_EDITOR
40
void Clucker_EditorDraw(void);
41
void Clucker_EditorLoad(void);
42
#endif
43
void Clucker_Serialize(void);
44
45
// Extra Entity Functions
46
void Clucker_DebugSpawn(void);
47
void Clucker_DebugDraw(void);
48
49
void Clucker_HandlePlayerInteractions(void);
50
void Clucker_CheckOffScreen(void);
51
52
void Clucker_State_Init(void);
53
void Clucker_State_CheckForPlayer(void);
54
void Clucker_State_Appear(void);
55
void Clucker_State_ShootDelay(void);
56
void Clucker_State_Shoot(void);
57
void Clucker_State_Turn(void);
58
void Clucker_State_Destroyed(void);
59
60
void Clucker_State_Egg(void);
61
62
#endif //! OBJ_CLUCKER_H
63
64