Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/GHZ/Crabmeat.h
338 views
1
#ifndef OBJ_CRABMEAT_H
2
#define OBJ_CRABMEAT_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectCrabmeat {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxProjectile;
11
uint16 aniFrames;
12
};
13
14
// Entity Class
15
struct EntityCrabmeat {
16
RSDK_ENTITY
17
StateMachine(state);
18
int32 timer;
19
uint8 shootState;
20
Vector2 startPos;
21
int32 startDir;
22
Animator animator;
23
};
24
25
// Object Struct
26
extern ObjectCrabmeat *Crabmeat;
27
28
// Standard Entity Events
29
void Crabmeat_Update(void);
30
void Crabmeat_LateUpdate(void);
31
void Crabmeat_StaticUpdate(void);
32
void Crabmeat_Draw(void);
33
void Crabmeat_Create(void *data);
34
void Crabmeat_StageLoad(void);
35
#if GAME_INCLUDE_EDITOR
36
void Crabmeat_EditorDraw(void);
37
void Crabmeat_EditorLoad(void);
38
#endif
39
void Crabmeat_Serialize(void);
40
41
// Extra Entity Functions
42
void Crabmeat_DebugDraw(void);
43
void Crabmeat_DebugSpawn(void);
44
45
void Crabmeat_CheckOffScreen(void);
46
void Crabmeat_CheckPlayerCollisions(void);
47
48
void Crabmeat_State_Init(void);
49
void Crabmeat_State_Moving(void);
50
void Crabmeat_State_Shoot(void);
51
void Crabmeat_State_Projectile(void);
52
53
#endif //! OBJ_CRABMEAT_H
54
55