Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/GHZ/BuzzBomber.h
338 views
1
#ifndef OBJ_BUZZBOMBER_H
2
#define OBJ_BUZZBOMBER_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectBuzzBomber {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxProjectile;
11
uint16 aniFrames;
12
};
13
14
// Entity Class
15
struct EntityBuzzBomber {
16
RSDK_ENTITY
17
StateMachine(state);
18
uint8 shotRange;
19
int32 timer;
20
uint8 detectedPlayer;
21
Vector2 startPos;
22
uint8 startDir;
23
Entity *projectile;
24
Animator animator;
25
Animator wingAnimator;
26
Animator thrustAnimator;
27
Hitbox hitboxRange;
28
};
29
30
// Object Struct
31
extern ObjectBuzzBomber *BuzzBomber;
32
33
// Standard Entity Events
34
void BuzzBomber_Update(void);
35
void BuzzBomber_LateUpdate(void);
36
void BuzzBomber_StaticUpdate(void);
37
void BuzzBomber_Draw(void);
38
void BuzzBomber_Create(void *data);
39
void BuzzBomber_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void BuzzBomber_EditorDraw(void);
42
void BuzzBomber_EditorLoad(void);
43
#endif
44
void BuzzBomber_Serialize(void);
45
46
// Extra Entity Functions
47
void BuzzBomber_DebugDraw(void);
48
void BuzzBomber_DebugSpawn(void);
49
50
void BuzzBomber_CheckOffScreen(void);
51
void BuzzBomber_CheckPlayerCollisions(void);
52
53
// States
54
void BuzzBomber_State_Init(void);
55
void BuzzBomber_State_Flying(void);
56
void BuzzBomber_State_Idle(void);
57
void BuzzBomber_State_DetectedPlayer(void);
58
59
// Projectile States
60
void BuzzBomber_State_ProjectileCharge(void);
61
void BuzzBomber_State_ProjectileShot(void);
62
63
#endif //! OBJ_BUZZBOMBER_H
64
65