Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/CPZ/CaterkillerJr.h
338 views
1
#ifndef OBJ_CATERKILLERJR_H
2
#define OBJ_CATERKILLERJR_H
3
4
#include "Game.h"
5
6
#define CATERKILLERJR_SEGMENT_COUNT (7)
7
8
// Object Class
9
struct ObjectCaterkillerJr {
10
RSDK_OBJECT
11
Hitbox hitbox;
12
uint16 aniFrames;
13
};
14
15
// Entity Class
16
struct EntityCaterkillerJr {
17
RSDK_ENTITY
18
StateMachine(state);
19
int32 timer;
20
Vector2 startPos;
21
Vector2 bodyPosition[8];
22
Vector2 bodyVelocity[8];
23
int32 bodyDirection[8];
24
int32 bodyTimer[8];
25
int32 boundsL;
26
int32 boundsR;
27
Animator bodyAnimators[CATERKILLERJR_SEGMENT_COUNT];
28
Animator smokePuffAnimators[3];
29
};
30
31
// Object Struct
32
extern ObjectCaterkillerJr *CaterkillerJr;
33
34
// Standard Entity Events
35
void CaterkillerJr_Update(void);
36
void CaterkillerJr_LateUpdate(void);
37
void CaterkillerJr_StaticUpdate(void);
38
void CaterkillerJr_Draw(void);
39
void CaterkillerJr_Create(void *data);
40
void CaterkillerJr_StageLoad(void);
41
#if GAME_INCLUDE_EDITOR
42
void CaterkillerJr_EditorDraw(void);
43
void CaterkillerJr_EditorLoad(void);
44
#endif
45
void CaterkillerJr_Serialize(void);
46
47
// Extra Entity Functions
48
void CaterkillerJr_DebugDraw(void);
49
void CaterkillerJr_DebugSpawn(void);
50
51
void CaterkillerJr_SetupPositions(void);
52
void CaterkillerJr_State_SetupVelocities(void);
53
void CaterkillerJr_State_Move(void);
54
55
#endif //! OBJ_CATERKILLERJR_H
56
57