Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MSZ/Bumpalo.h
338 views
1
#ifndef OBJ_BUMPALO_H
2
#define OBJ_BUMPALO_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectBumpalo {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxBumper;
11
Hitbox hitboxRange;
12
Hitbox hitboxCharge;
13
Hitbox hitboxUnused;
14
uint16 aniFrames;
15
uint16 sfxBumper;
16
uint16 sfxHuff;
17
uint16 sfxClack;
18
uint16 sfxImpact;
19
};
20
21
// Entity Class
22
struct EntityBumpalo {
23
RSDK_ENTITY
24
StateMachine(state);
25
Vector2 startPos;
26
uint8 startDir;
27
int32 timer;
28
bool32 ignoreCliffs;
29
bool32 wallCollided;
30
Animator badnikAnimator;
31
Animator huffAnimator;
32
Animator dustAnimator;
33
};
34
35
// Object Struct
36
extern ObjectBumpalo *Bumpalo;
37
38
// Standard Entity Events
39
void Bumpalo_Update(void);
40
void Bumpalo_LateUpdate(void);
41
void Bumpalo_StaticUpdate(void);
42
void Bumpalo_Draw(void);
43
void Bumpalo_Create(void *data);
44
void Bumpalo_StageLoad(void);
45
#if GAME_INCLUDE_EDITOR
46
void Bumpalo_EditorDraw(void);
47
void Bumpalo_EditorLoad(void);
48
#endif
49
void Bumpalo_Serialize(void);
50
51
// Extra Entity Functions
52
void Bumpalo_DebugSpawn(void);
53
void Bumpalo_DebugDraw(void);
54
55
void Bumpalo_CheckOffScreen(void);
56
void Bumpalo_BumpPlayer(EntityPlayer *player);
57
void Bumpalo_CheckPlayerCollisions(void);
58
void Bumpalo_HandlePlatformCollisions(EntityPlatform *platform);
59
void Bumpalo_HandleObjectCollisions(void);
60
61
void Bumpalo_State_Init(void);
62
void Bumpalo_State_Moving(void);
63
void Bumpalo_State_Idle(void);
64
void Bumpalo_State_Charging(void);
65
void Bumpalo_State_Turning(void);
66
void Bumpalo_State_Bumped(void);
67
void Bumpalo_State_Falling(void);
68
69
#endif //! OBJ_BUMPALO_H
70
71