Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/FBZ/FBZTrash.h
338 views
1
#ifndef OBJ_FBZTRASH_H
2
#define OBJ_FBZTRASH_H
3
4
#include "Game.h"
5
6
typedef enum {
7
FBZTRASH_TRASH,
8
FBZTRASH_UNUSED,
9
FBZTRASH_ORB,
10
FBZTRASH_ORBINAUT,
11
} FBZTrashTypes;
12
13
// Object Class
14
struct ObjectFBZTrash {
15
RSDK_OBJECT
16
uint16 aniFrames;
17
};
18
19
// Entity Class
20
struct EntityFBZTrash {
21
RSDK_ENTITY
22
StateMachine(state);
23
FBZTrashTypes type;
24
int32 frameID;
25
int32 rumbleMove;
26
int32 timer;
27
int32 radius;
28
Vector2 targetPos;
29
Vector2 startPos;
30
EntityFBZTrash *parent;
31
Hitbox hitbox;
32
Animator animator;
33
};
34
35
// Object Struct
36
extern ObjectFBZTrash *FBZTrash;
37
38
// Standard Entity Events
39
void FBZTrash_Update(void);
40
void FBZTrash_LateUpdate(void);
41
void FBZTrash_StaticUpdate(void);
42
void FBZTrash_Draw(void);
43
void FBZTrash_Create(void *data);
44
void FBZTrash_StageLoad(void);
45
#if GAME_INCLUDE_EDITOR
46
void FBZTrash_EditorDraw(void);
47
void FBZTrash_EditorLoad(void);
48
#endif
49
void FBZTrash_Serialize(void);
50
51
// Extra Entity Functions
52
void FBZTrash_SummonOrbinautOrbs(EntityFBZTrash *trashPtr, int32 angle);
53
void FBZTrash_SummonOrbinaut(int32 x, int32 y);
54
void FBZTrash_State_LooseTrash(void);
55
void FBZTrash_State_ReactMagnet(void);
56
void FBZTrash_State_MoveToTarget(void);
57
void FBZTrash_State_OrbinautOrb(void);
58
void FBZTrash_State_OrbinautMove(void);
59
60
#endif //! OBJ_FBZTRASH_H
61
62