Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/ERZ/ERZShinobi.h
338 views
1
#ifndef OBJ_ERZSHINOBI_H
2
#define OBJ_ERZSHINOBI_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectERZShinobi {
8
RSDK_OBJECT
9
Hitbox hitbox;
10
uint16 aniFrames;
11
};
12
13
// Entity Class
14
struct EntityERZShinobi {
15
RSDK_ENTITY
16
StateMachine(state);
17
Vector2 startPos;
18
int32 timer;
19
int32 invincibilityTimer;
20
int32 finRadius;
21
int32 rotStore;
22
int32 rotSpeed; // Not used... yet! (See ERZ/PhantomShinobi)
23
int32 numBounces;
24
bool32 prevOnGround;
25
Hitbox outerBox;
26
Hitbox innerBox;
27
Animator bodyAnimator;
28
Animator armAnimator;
29
Animator finAnimator;
30
};
31
32
// Object Struct
33
extern ObjectERZShinobi *ERZShinobi;
34
35
// Standard Entity Events
36
void ERZShinobi_Update(void);
37
void ERZShinobi_LateUpdate(void);
38
void ERZShinobi_StaticUpdate(void);
39
void ERZShinobi_Draw(void);
40
void ERZShinobi_Create(void *data);
41
void ERZShinobi_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void ERZShinobi_EditorDraw(void);
44
void ERZShinobi_EditorLoad(void);
45
#endif
46
void ERZShinobi_Serialize(void);
47
48
// Extra Entity Functions
49
void ERZShinobi_CheckPlayerCollisions(void);
50
void ERZShinobi_Hit(void);
51
void ERZShinobi_HandleTileCollisions(void);
52
void ERZShinobi_State_Moving(void);
53
54
#endif //! OBJ_ERZSHINOBI_H
55
56