Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/TurboSpiker.h
338 views
1
#ifndef OBJ_TURBOSPIKER_H
2
#define OBJ_TURBOSPIKER_H
3
4
#include "Game.h"
5
6
typedef enum {
7
TURBOSPIKER_VISIBLE,
8
TURBOSPIKER_HIDDEN,
9
} TurboSpikerTypes;
10
11
// Object Class
12
struct ObjectTurboSpiker {
13
RSDK_OBJECT
14
Hitbox hitboxBadnik;
15
Hitbox hitboxSpike;
16
Hitbox hitboxRange;
17
uint16 aniFrames;
18
uint16 sfxLaunch;
19
uint16 sfxSplash;
20
};
21
22
// Entity Class
23
struct EntityTurboSpiker {
24
RSDK_ENTITY
25
StateMachine(state);
26
uint32 type;
27
int32 timer;
28
int32 unused;
29
Vector2 startPos;
30
uint8 startDir;
31
EntityTurboSpiker *spike;
32
Animator shellAnimator;
33
Animator animator;
34
bool32 playedLaunchSfx;
35
};
36
37
// Object Struct
38
extern ObjectTurboSpiker *TurboSpiker;
39
40
// Standard Entity Events
41
void TurboSpiker_Update(void);
42
void TurboSpiker_LateUpdate(void);
43
void TurboSpiker_StaticUpdate(void);
44
void TurboSpiker_Draw(void);
45
void TurboSpiker_Create(void *data);
46
void TurboSpiker_StageLoad(void);
47
#if GAME_INCLUDE_EDITOR
48
void TurboSpiker_EditorDraw(void);
49
void TurboSpiker_EditorLoad(void);
50
#endif
51
void TurboSpiker_Serialize(void);
52
53
void TurboSpiker_DebugSpawn(void);
54
void TurboSpiker_DebugDraw(void);
55
56
// Extra Entity Functions
57
void TurboSpiker_Hermit_Collide(void);
58
void TurboSpiker_Hermit_CheckOffScreen(void);
59
void TurboSpiker_HandleMovement(void);
60
61
void TurboSpiker_State_Init(void);
62
void TurboSpiker_State_Idle(void);
63
void TurboSpiker_State_Hidden(void);
64
void TurboSpiker_State_Moving(void);
65
void TurboSpiker_State_Turning(void);
66
void TurboSpiker_State_FinishTurning(void);
67
void TurboSpiker_State_Falling(void);
68
void TurboSpiker_State_FireShell(void);
69
70
void TurboSpiker_HandleSpikeCollisions(void);
71
void TurboSpiker_State_Spike(void);
72
73
void TurboSpiker_State_Ember(void);
74
75
#endif //! OBJ_TURBOSPIKER_H
76
77