Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/SPZ/CircleBumper.h
338 views
1
#ifndef OBJ_CIRCLEBUMPER_H
2
#define OBJ_CIRCLEBUMPER_H
3
4
#include "Game.h"
5
6
typedef enum {
7
CIRCLEBUMPER_FIXED,
8
CIRCLEBUMPER_LINEAR,
9
CIRCLEBUMPER_CIRCLE,
10
CIRCLEBUMPER_TRACK,
11
CIRCLEBUMPER_PATH,
12
} CircleBumperTypes;
13
14
// Object Class
15
struct ObjectCircleBumper {
16
RSDK_OBJECT
17
Hitbox hitboxBumper;
18
uint16 aniFrames;
19
uint16 sfxBumper;
20
};
21
22
// Entity Class
23
struct EntityCircleBumper {
24
RSDK_ENTITY
25
StateMachine(stateCollide);
26
StateMachine(stateMove);
27
int32 hitCount;
28
int32 type;
29
Vector2 amplitude;
30
int32 speed;
31
Vector2 drawPos;
32
Animator animator;
33
int32 unused;
34
};
35
36
// Object Struct
37
extern ObjectCircleBumper *CircleBumper;
38
39
// Standard Entity Events
40
void CircleBumper_Update(void);
41
void CircleBumper_LateUpdate(void);
42
void CircleBumper_StaticUpdate(void);
43
void CircleBumper_Draw(void);
44
void CircleBumper_Create(void *data);
45
void CircleBumper_StageLoad(void);
46
#if GAME_INCLUDE_EDITOR
47
void CircleBumper_EditorDraw(void);
48
void CircleBumper_EditorLoad(void);
49
#endif
50
void CircleBumper_Serialize(void);
51
52
// Extra Entity Functions
53
void CircleBumper_DebugDraw(void);
54
void CircleBumper_DebugSpawn(void);
55
56
void CircleBumper_CheckPlayerCollisions(void);
57
58
void CircleBumper_Collide_Normal(void);
59
void CircleBumper_Collide_Bumped(void);
60
61
void CircleBumper_Move_Fixed(void);
62
void CircleBumper_Move_Linear(void);
63
void CircleBumper_Move_Circular(void);
64
void CircleBumper_Move_Path(void);
65
void CircleBumper_Move_Track(void);
66
67
#endif //! OBJ_CIRCLEBUMPER_H
68
69