Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/BreakBar.h
338 views
1
#ifndef OBJ_BREAKBAR_H
2
#define OBJ_BREAKBAR_H
3
4
#include "Game.h"
5
6
typedef enum {
7
BREAKBAR_V,
8
BREAKBAR_H,
9
} BreakBarOrientations;
10
11
// Object Class
12
struct ObjectBreakBar {
13
RSDK_OBJECT
14
uint16 aniFrames;
15
uint16 sfxBreak;
16
};
17
18
// Entity Class
19
struct EntityBreakBar {
20
RSDK_ENTITY
21
StateMachine(state);
22
uint8 orientation;
23
uint16 length;
24
uint8 activePlayersGrabbed;
25
uint8 activePlayersReleased;
26
uint8 playerTimers[PLAYER_COUNT];
27
Vector2 startPos;
28
int32 releaseTimer;
29
bool32 isBroken;
30
Hitbox hitbox;
31
Animator animator;
32
};
33
34
// Object Struct
35
extern ObjectBreakBar *BreakBar;
36
37
// Standard Entity Events
38
void BreakBar_Update(void);
39
void BreakBar_LateUpdate(void);
40
void BreakBar_StaticUpdate(void);
41
void BreakBar_Draw(void);
42
void BreakBar_Create(void *data);
43
void BreakBar_StageLoad(void);
44
#if GAME_INCLUDE_EDITOR
45
void BreakBar_EditorDraw(void);
46
void BreakBar_EditorLoad(void);
47
#endif
48
void BreakBar_Serialize(void);
49
50
// Extra Entity Functions
51
void BreakBar_DrawSprites(void);
52
53
void BreakBar_CheckPlayerCollisions(void);
54
void BreakBar_HandlePlayerInteractions(EntityPlayer *player);
55
56
void BreakBar_State_Init(void);
57
void BreakBar_State_Main(void);
58
59
#endif //! OBJ_BREAKBAR_H
60
61