Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/GHZ/CheckerBall.h
338 views
1
#ifndef OBJ_CHECKERBALL_H
2
#define OBJ_CHECKERBALL_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectCheckerBall {
8
RSDK_OBJECT
9
Hitbox hitboxBall;
10
Hitbox innerBox;
11
Hitbox outerBox;
12
uint8 heightArray[24];
13
uint8 unusedArray[24];
14
uint16 aniFrames;
15
};
16
17
// Entity Class
18
struct EntityCheckerBall {
19
RSDK_ENTITY
20
bool32 playerControlled;
21
int32 angleVel;
22
int32 ballAngle;
23
Vector2 roundedPos;
24
Vector2 collisionOffset;
25
uint8 activePlayers;
26
Animator animator;
27
};
28
29
// Object Struct
30
extern ObjectCheckerBall *CheckerBall;
31
32
// Standard Entity Events
33
void CheckerBall_Update(void);
34
void CheckerBall_LateUpdate(void);
35
void CheckerBall_StaticUpdate(void);
36
void CheckerBall_Draw(void);
37
void CheckerBall_Create(void *data);
38
void CheckerBall_StageLoad(void);
39
#if GAME_INCLUDE_EDITOR
40
void CheckerBall_EditorDraw(void);
41
void CheckerBall_EditorLoad(void);
42
#endif
43
void CheckerBall_Serialize(void);
44
45
// Extra Entity Functions
46
void CheckerBall_DebugSpawn(void);
47
void CheckerBall_DebugDraw(void);
48
49
void CheckerBall_HandlePhysics(void);
50
void CheckerBall_HandlePlayerMovement(void);
51
void CheckerBall_HandlePlayerInteractions(void);
52
void CheckerBall_BadnikBreak(void *b, Hitbox *hitbox);
53
void CheckerBall_HandleObjectCollisions(void);
54
55
#endif //! OBJ_CHECKERBALL_H
56
57