Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/SBZ/Orbinaut.h
338 views
1
#ifndef OBJ_ORBINAUT_H
2
#define OBJ_ORBINAUT_H
3
4
#include "Game.h"
5
6
#define ORBINAUT_ORB_COUNT (4)
7
8
// Object Class
9
struct ObjectOrbinaut {
10
RSDK_OBJECT
11
Hitbox hitboxBadnik;
12
Hitbox hitboxOrb;
13
uint16 aniFrames;
14
};
15
16
// Entity Class
17
struct EntityOrbinaut {
18
RSDK_ENTITY
19
StateMachine(state);
20
int32 planeFilter;
21
Vector2 startPos;
22
uint8 startDir;
23
uint8 activeOrbs;
24
Vector2 orbPositions[ORBINAUT_ORB_COUNT];
25
bool32 fireOrbs;
26
Animator animatorFace;
27
Animator animatorOrb;
28
};
29
30
// Object Entity
31
extern ObjectOrbinaut *Orbinaut;
32
33
// Standard Entity Events
34
void Orbinaut_Update(void);
35
void Orbinaut_LateUpdate(void);
36
void Orbinaut_StaticUpdate(void);
37
void Orbinaut_Draw(void);
38
void Orbinaut_Create(void *data);
39
void Orbinaut_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void Orbinaut_EditorDraw(void);
42
void Orbinaut_EditorLoad(void);
43
#endif
44
void Orbinaut_Serialize(void);
45
46
// Extra Entity Functions
47
void Orbinaut_DebugSpawn(void);
48
void Orbinaut_DebugDraw(void);
49
50
void Orbinaut_HandlePlayerInteractions(void);
51
void Orbinaut_HandleRotation(void);
52
void Orbinaut_CheckOffScreen(void);
53
54
void Orbinaut_State_Init(void);
55
void Orbinaut_State_Moving(void);
56
void Orbinaut_State_ReleasingOrbs(void);
57
void Orbinaut_State_Orbless(void);
58
59
void Orbinaut_State_Orb(void);
60
void Orbinaut_State_OrbDebris(void);
61
62
#endif //! OBJ_ORBINAUT_H
63
64