Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/ERZ/PhantomMissile.h
338 views
1
#ifndef OBJ_PHANTOMMISSILE_H
2
#define OBJ_PHANTOMMISSILE_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectPhantomMissile {
8
RSDK_OBJECT
9
Hitbox hitbox;
10
uint16 aniFrames;
11
};
12
13
// Entity Class
14
struct EntityPhantomMissile {
15
RSDK_ENTITY
16
StateMachine(state);
17
int32 timer;
18
int32 oscillateAngle;
19
int32 targetRadius;
20
int32 reattachRadius;
21
int32 id;
22
Vector2 targetPos;
23
EntityPhantomEgg *parent;
24
Animator missileAnimator;
25
Animator targetOutsideAnimator;
26
Animator targetInsideAnimator;
27
Animator targetNumbersAnimator;
28
};
29
30
// Object Struct
31
extern ObjectPhantomMissile *PhantomMissile;
32
33
// Standard Entity Events
34
void PhantomMissile_Update(void);
35
void PhantomMissile_LateUpdate(void);
36
void PhantomMissile_StaticUpdate(void);
37
void PhantomMissile_Draw(void);
38
void PhantomMissile_Create(void *data);
39
void PhantomMissile_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void PhantomMissile_EditorDraw(void);
42
void PhantomMissile_EditorLoad(void);
43
#endif
44
void PhantomMissile_Serialize(void);
45
46
// Extra Entity Functions
47
void PhantomMissile_GetTargetPos(void);
48
void PhantomMissile_HandleExhaust(void);
49
50
void PhantomMissile_State_Attached(void);
51
void PhantomMissile_State_PrepareLaunch(void);
52
void PhantomMissile_State_Launched(void);
53
void PhantomMissile_State_Attacking(void);
54
void PhantomMissile_State_Explode(void);
55
void PhantomMissile_State_Reattach(void);
56
void PhantomMissile_State_Destroyed(void);
57
58
#endif //! OBJ_PHANTOMMISSILE_H
59
60