Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/OOZ/Sol.h
338 views
1
#ifndef OBJ_SOL_H
2
#define OBJ_SOL_H
3
4
#include "Game.h"
5
6
#define SOL_FLAMEORB_COUNT (4)
7
8
// Object Class
9
struct ObjectSol {
10
RSDK_OBJECT
11
Hitbox hitboxBadnik;
12
Hitbox hitboxOrb;
13
uint16 aniFrames;
14
};
15
16
// Entity Class
17
struct EntitySol {
18
RSDK_ENTITY
19
StateMachine(state);
20
Vector2 startPos;
21
uint8 startDir;
22
uint8 activeOrbs;
23
Vector2 positions[SOL_FLAMEORB_COUNT];
24
int32 oscillateAngle;
25
bool32 isFlameFX;
26
bool32 fireOrbs;
27
Animator mainAnimator;
28
Animator ballAnimator;
29
};
30
31
// Object Struct
32
extern ObjectSol *Sol;
33
34
// Standard Entity Events
35
void Sol_Update(void);
36
void Sol_LateUpdate(void);
37
void Sol_StaticUpdate(void);
38
void Sol_Draw(void);
39
void Sol_Create(void *data);
40
void Sol_StageLoad(void);
41
#if GAME_INCLUDE_EDITOR
42
void Sol_EditorDraw(void);
43
void Sol_EditorLoad(void);
44
#endif
45
void Sol_Serialize(void);
46
47
// Extra Entity Functions
48
void Sol_DebugSpawn(void);
49
void Sol_DebugDraw(void);
50
51
void Sol_HandlePlayerInteractions(void);
52
void Sol_HandlePlayerHurt(void);
53
void Sol_HandleRotation(void);
54
void Sol_CheckOffScreen(void);
55
56
void Sol_State_Init(void);
57
void Sol_State_Moving(void);
58
void Sol_State_ShootingOrbs(void);
59
void Sol_State_NoOrbs(void);
60
61
void Sol_State_SmallFireball(void);
62
void Sol_State_ActiveFireball(void);
63
64
void Sol_State_FlameDissipate(void);
65
void Sol_State_FireballOilFlame(void);
66
void Sol_State_OilFlame(void);
67
68
#endif //! OBJ_SOL_H
69
70