Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/FBZ/FlameSpring.h
338 views
1
#ifndef OBJ_FLAMESPRING_H
2
#define OBJ_FLAMESPRING_H
3
4
#include "Game.h"
5
6
typedef enum {
7
FLAMESPRING_BOTH,
8
FLAMESPRING_RIGHT,
9
FLAMESPRING_LEFT,
10
FLAMESPRING_BOTH_NOSPRING,
11
FLAMESPRING_RIGHT_NOSPRING,
12
FLAMESPRING_LEFT_NOSPRING,
13
} FlameSpringTypes;
14
15
typedef enum {
16
FLAMESPRING_FORCE_WEAK,
17
FLAMESPRING_FORCE_STRONG,
18
} FlameSpringForceTypes;
19
20
typedef enum {
21
FLAMESPRING_PANI_DIAGONAL,
22
FLAMESPRING_PANI_TWIRL,
23
} FlameSpringPAniTypes;
24
25
// Object Class
26
struct ObjectFlameSpring {
27
RSDK_OBJECT
28
uint16 aniFrames;
29
Hitbox hitboxSpring;
30
Hitbox hitboxFlame;
31
uint16 sfxSpring;
32
uint16 sfxFlame;
33
};
34
35
// Entity Class
36
struct EntityFlameSpring {
37
RSDK_ENTITY
38
StateMachine(state);
39
StateMachine(stateDraw);
40
int32 type;
41
int32 force;
42
uint8 playerAni;
43
uint8 offset;
44
Vector2 flamePosL;
45
Vector2 flamePosR;
46
bool32 spittingFire;
47
uint8 timer;
48
Animator mainAnimator;
49
Animator nozzleAnimator;
50
};
51
52
// Object Struct
53
extern ObjectFlameSpring *FlameSpring;
54
55
// Standard Entity Events
56
void FlameSpring_Update(void);
57
void FlameSpring_LateUpdate(void);
58
void FlameSpring_StaticUpdate(void);
59
void FlameSpring_Draw(void);
60
void FlameSpring_Create(void *data);
61
void FlameSpring_StageLoad(void);
62
#if GAME_INCLUDE_EDITOR
63
void FlameSpring_EditorDraw(void);
64
void FlameSpring_EditorLoad(void);
65
#endif
66
void FlameSpring_Serialize(void);
67
68
// Extra Entity Functions
69
void FlameSpring_State_Spring(void);
70
void FlameSpring_State_Flame(void);
71
72
void FlameSpring_Draw_Spring(void);
73
void FlameSpring_Draw_Flame(void);
74
75
#endif //! OBJ_FLAMESPRING_H
76
77