Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/ERZ/PhantomShinobi.h
338 views
1
#ifndef OBJ_PHANTOMSHINOBI_H
2
#define OBJ_PHANTOMSHINOBI_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectPhantomShinobi {
8
RSDK_OBJECT
9
Hitbox hitbox;
10
uint16 aniFrames;
11
uint16 sfxBlade;
12
uint16 sfxHit;
13
};
14
15
// Entity Class
16
struct EntityPhantomShinobi {
17
RSDK_ENTITY
18
StateMachine(state);
19
Vector2 startPos;
20
int32 timer;
21
int32 invincibilityTimer;
22
int32 unused;
23
int32 finRadius;
24
int32 rotStore;
25
int32 rotSpeed;
26
int32 numBounces;
27
int32 attackCount;
28
bool32 prevOnGround;
29
Hitbox outerBox;
30
Hitbox innerBox;
31
Animator bodyAnimator;
32
Animator armAnimator;
33
Animator finAnimator;
34
};
35
36
// Object Struct
37
extern ObjectPhantomShinobi *PhantomShinobi;
38
39
// Standard Entity Events
40
void PhantomShinobi_Update(void);
41
void PhantomShinobi_LateUpdate(void);
42
void PhantomShinobi_StaticUpdate(void);
43
void PhantomShinobi_Draw(void);
44
void PhantomShinobi_Create(void *data);
45
void PhantomShinobi_StageLoad(void);
46
#if GAME_INCLUDE_EDITOR
47
void PhantomShinobi_EditorDraw(void);
48
void PhantomShinobi_EditorLoad(void);
49
#endif
50
void PhantomShinobi_Serialize(void);
51
52
// Extra Entity Functions
53
void PhantomShinobi_CheckPlayerCollisions(void);
54
void PhantomShinobi_Hit(void);
55
void PhantomShinobi_HandleTileCollisions(void);
56
void PhantomShinobi_ResetStates(void);
57
58
void PhantomShinobi_State_EnterShinobi(void);
59
void PhantomShinobi_State_AttackDelay(void);
60
void PhantomShinobi_State_SetupAttack(void);
61
void PhantomShinobi_State_Moving(void);
62
void PhantomShinobi_State_PrepareFinAttack(void);
63
void PhantomShinobi_State_ExtendFins(void);
64
void PhantomShinobi_State_RetractFins(void);
65
void PhantomShinobi_State_FinishedAttack(void);
66
67
bool32 PhantomShinobi_SfxCheck_ShinobiBlade(void);
68
69
#endif //! OBJ_PHANTOMSHINOBI_H
70
71