Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/GHZ/Batbrain.h
338 views
1
#ifndef OBJ_BATBRAIN_H
2
#define OBJ_BATBRAIN_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectBatbrain {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
uint16 aniFrames;
11
uint16 sfxFlap;
12
};
13
14
// Entity Class
15
struct EntityBatbrain {
16
RSDK_ENTITY
17
StateMachine(state);
18
int32 targetY;
19
EntityPlayer *target;
20
Vector2 startPos;
21
Animator animator;
22
};
23
24
// Object Struct
25
extern ObjectBatbrain *Batbrain;
26
27
// Standard Entity Events
28
void Batbrain_Update(void);
29
void Batbrain_LateUpdate(void);
30
void Batbrain_StaticUpdate(void);
31
void Batbrain_Draw(void);
32
void Batbrain_Create(void *data);
33
void Batbrain_StageLoad(void);
34
#if GAME_INCLUDE_EDITOR
35
void Batbrain_EditorDraw(void);
36
void Batbrain_EditorLoad(void);
37
#endif
38
void Batbrain_Serialize(void);
39
40
// Extra Entity Functions
41
void Batbrain_DebugDraw(void);
42
void Batbrain_DebugSpawn(void);
43
44
// Helpers
45
void Batbrain_CheckPlayerCollisions(void);
46
void Batbrain_CheckOffScreen(void);
47
48
// States
49
void Batbrain_State_Init(void);
50
void Batbrain_State_CheckPlayerInRange(void);
51
void Batbrain_State_DropToPlayer(void);
52
void Batbrain_State_Fly(void);
53
void Batbrain_State_FlyToCeiling(void);
54
55
#endif //! OBJ_BATBRAIN_H
56
57