Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MSZ/Hatterkiller.h
338 views
1
#ifndef OBJ_HATTERKILLER_H
2
#define OBJ_HATTERKILLER_H
3
4
#include "Game.h"
5
6
#define HATTERKILLER_SEGMENT_COUNT (10)
7
8
// Object Class
9
struct ObjectHatterkiller {
10
RSDK_OBJECT
11
Hitbox hitboxSegment;
12
uint16 sfxRocketJet;
13
uint16 sfxTransform2;
14
uint16 sfxPowerup;
15
uint16 aniFrames;
16
};
17
18
// Entity Class
19
struct EntityHatterkiller {
20
RSDK_ENTITY
21
int32 timer;
22
Vector2 bodyPositions[HATTERKILLER_SEGMENT_COUNT];
23
Vector2 bodyVelocities[HATTERKILLER_SEGMENT_COUNT];
24
int32 bodyDelays[HATTERKILLER_SEGMENT_COUNT];
25
Animator *bodyAnimators[HATTERKILLER_SEGMENT_COUNT];
26
Animator headAnimator;
27
Animator bodyAnimator;
28
Animator tailAnimator;
29
};
30
31
// Object Struct
32
extern ObjectHatterkiller *Hatterkiller;
33
34
// Standard Entity Events
35
void Hatterkiller_Update(void);
36
void Hatterkiller_LateUpdate(void);
37
void Hatterkiller_StaticUpdate(void);
38
void Hatterkiller_Draw(void);
39
void Hatterkiller_Create(void *data);
40
void Hatterkiller_StageLoad(void);
41
#if GAME_INCLUDE_EDITOR
42
void Hatterkiller_EditorDraw(void);
43
void Hatterkiller_EditorLoad(void);
44
#endif
45
void Hatterkiller_Serialize(void);
46
47
// Extra Entity Functions
48
void Hatterkiller_DebugDraw(void);
49
void Hatterkiller_DebugSpawn(void);
50
51
#endif //! OBJ_HATTERKILLER_H
52
53