Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/CPZ/SpeedBooster.h
338 views
1
#ifndef OBJ_SPEEDBOOSTER_H
2
#define OBJ_SPEEDBOOSTER_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectSpeedBooster {
8
RSDK_OBJECT
9
StateMachine(defaultState);
10
Hitbox hitbox;
11
uint16 aniFrames;
12
uint16 sfxSpeedBooster;
13
};
14
15
// Entity Class
16
struct EntitySpeedBooster {
17
RSDK_ENTITY
18
StateMachine(state);
19
uint8 speed;
20
int32 playerPos[PLAYER_COUNT];
21
Vector2 drawPos;
22
uint8 timer;
23
uint8 playerTimer[PLAYER_COUNT];
24
Animator animator;
25
};
26
27
// Object Struct
28
extern ObjectSpeedBooster *SpeedBooster;
29
30
// Standard Entity Events
31
void SpeedBooster_Update(void);
32
void SpeedBooster_LateUpdate(void);
33
void SpeedBooster_StaticUpdate(void);
34
void SpeedBooster_Draw(void);
35
void SpeedBooster_Create(void *data);
36
void SpeedBooster_StageLoad(void);
37
#if GAME_INCLUDE_EDITOR
38
void SpeedBooster_EditorDraw(void);
39
void SpeedBooster_EditorLoad(void);
40
#endif
41
void SpeedBooster_Serialize(void);
42
43
void SpeedBooster_DebugSpawn(void);
44
void SpeedBooster_DebugDraw(void);
45
46
// Extra Entity Functions
47
void SpeedBooster_State_SpeedBooster(void);
48
void SpeedBooster_HandleInteractions(void);
49
50
void SpeedBooster_State_SSZFire(void);
51
void SpeedBooster_State_SSZRecoil(void);
52
void SpeedBooster_State_SSZRetract(void);
53
54
void SpeedBooster_State_SSZBullet(void);
55
56
#endif //! OBJ_SPEEDBOOSTER_H
57
58