Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/SSZ/Kabasira.h
338 views
1
#ifndef OBJ_KABASIRA_H
2
#define OBJ_KABASIRA_H
3
4
#include "Game.h"
5
6
#define KABASIRA_BODY_COUNT (4)
7
8
// Object Class
9
struct ObjectKabasira {
10
RSDK_OBJECT
11
Hitbox hitboxBadnik;
12
Vector2 onScreenRange;
13
uint16 aniFrames;
14
uint16 sfxPon;
15
uint16 sfxExplosion2;
16
};
17
18
// Entity Class
19
struct EntityKabasira {
20
RSDK_ENTITY
21
StateMachine(state);
22
int32 unused1;
23
int32 unused2;
24
Vector2 startPos;
25
uint8 startDir;
26
int32 timer;
27
Animator bodyAnimator;
28
Animator wingsAnimator;
29
int32 unused3;
30
};
31
32
// Object Struct
33
extern ObjectKabasira *Kabasira;
34
35
// Standard Entity Events
36
void Kabasira_Update(void);
37
void Kabasira_LateUpdate(void);
38
void Kabasira_StaticUpdate(void);
39
void Kabasira_Draw(void);
40
void Kabasira_Create(void *data);
41
void Kabasira_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void Kabasira_EditorDraw(void);
44
void Kabasira_EditorLoad(void);
45
#endif
46
void Kabasira_Serialize(void);
47
48
// Extra Entity Functions
49
void Kabasira_DebugSpawn(void);
50
void Kabasira_DebugDraw(void);
51
52
bool32 Kabasira_HandleAnimations(uint8 angle);
53
void Kabasira_DrawSegment(int32 angle, int32 alpha);
54
void Kabasira_CheckPlayerCollisions(void);
55
void Kabasira_CheckOffScreen(void);
56
57
void Kabasira_State_Init(void);
58
void Kabasira_State_Moving(void);
59
void Kabasira_State_LaunchedAttack(void);
60
61
#endif //! OBJ_KABASIRA_H
62
63