Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/ERZ/PhantomRider.h
338 views
1
#ifndef OBJ_PHANTOMRIDER_H
2
#define OBJ_PHANTOMRIDER_H
3
4
#include "Game.h"
5
6
typedef enum { PHANTOMRIDER_JIMMY = 3 } PhantomRiderTypes;
7
8
// Object Class
9
struct ObjectPhantomRider {
10
RSDK_OBJECT
11
uint16 aniFrames;
12
uint16 sfxRiderLaunch;
13
uint16 unused;
14
};
15
16
// Entity Class
17
struct EntityPhantomRider {
18
RSDK_ENTITY
19
StateMachine(state);
20
StateMachine(stateDraw);
21
Vector2 startPos;
22
int32 timer;
23
int32 invincibilityTimer;
24
int32 unused;
25
int32 type;
26
bool32 prevOnGround;
27
EntityPhantomRider *child;
28
Hitbox hitbox;
29
Hitbox outerBox;
30
Hitbox innerBox;
31
Animator mainAnimator;
32
Animator jimmyAnimator;
33
Animator wheelAnimator;
34
Animator thrustAnimator;
35
Animator unusedAnimator1;
36
Animator unusedAnimator2;
37
};
38
39
// Object Struct
40
extern ObjectPhantomRider *PhantomRider;
41
42
// Standard Entity Events
43
void PhantomRider_Update(void);
44
void PhantomRider_LateUpdate(void);
45
void PhantomRider_StaticUpdate(void);
46
void PhantomRider_Draw(void);
47
void PhantomRider_Create(void *data);
48
void PhantomRider_StageLoad(void);
49
#if GAME_INCLUDE_EDITOR
50
void PhantomRider_EditorDraw(void);
51
void PhantomRider_EditorLoad(void);
52
#endif
53
void PhantomRider_Serialize(void);
54
55
// Extra Entity Functions
56
void PhantomRider_ProcessAutoScroll(void);
57
void PhantomRider_Hit(void);
58
59
void PhantomRider_Draw_Rider(void);
60
61
void PhantomRider_State_HandleBegin(void);
62
void PhantomRider_State_EnterRider(void);
63
void PhantomRider_State_InitialRace(void);
64
void PhantomRider_State_RacePlayer(void);
65
void PhantomRider_State_ExitRider(void);
66
67
void PhantomRider_State_Jimmy(void);
68
69
#endif //! OBJ_PHANTOMRIDER_H
70
71