Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MSZ/Armadiloid.h
338 views
1
#ifndef OBJ_ARMADILOID_H
2
#define OBJ_ARMADILOID_H
3
4
#include "Game.h"
5
6
typedef enum { ARMADILOID_SHOOTER, ARMADILOID_RIDER } ArmadiloidTypes;
7
8
// Object Class
9
struct ObjectArmadiloid {
10
RSDK_OBJECT
11
uint16 aniFrames;
12
uint16 sfxShot;
13
};
14
15
// Entity Class
16
struct EntityArmadiloid {
17
RSDK_ENTITY
18
StateMachine(state);
19
int32 type;
20
int32 timer;
21
EntityArmadiloid *child;
22
EntityArmadiloid *parent;
23
Vector2 startPos;
24
Hitbox hitbox;
25
Animator bodyAnimator;
26
Animator headAnimator;
27
Animator boosterAnimator;
28
};
29
30
// Object Struct
31
extern ObjectArmadiloid *Armadiloid;
32
33
// Standard Entity Events
34
void Armadiloid_Update(void);
35
void Armadiloid_LateUpdate(void);
36
void Armadiloid_StaticUpdate(void);
37
void Armadiloid_Draw(void);
38
void Armadiloid_Create(void *data);
39
void Armadiloid_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void Armadiloid_EditorDraw(void);
42
void Armadiloid_EditorLoad(void);
43
#endif
44
void Armadiloid_Serialize(void);
45
46
// Extra Entity Functions
47
void Armadiloid_DebugSpawn(void);
48
void Armadiloid_DebugDraw(void);
49
50
void Armadiloid_State_Init(void);
51
52
void Armadiloid_State_PlatformFlying(void);
53
void Armadiloid_PlatformShootDelay(void);
54
void Armadiloid_State_PlatformShoot(void);
55
56
void Armadiloid_State_Rider(void);
57
58
#endif //! OBJ_ARMADILOID_H
59
60