Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/SSZ/Dango.h
338 views
1
#ifndef OBJ_DANGO_H
2
#define OBJ_DANGO_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectDango {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxCurlRange;
11
uint16 aniFrames;
12
uint16 sfxBumper;
13
};
14
15
// Entity Class
16
struct EntityDango {
17
RSDK_ENTITY
18
StateMachine(state);
19
int32 timer;
20
int32 rollDelay;
21
bool32 preventStateChange;
22
Vector2 startPos;
23
uint8 startDir;
24
Animator animator;
25
};
26
27
// Object Struct
28
extern ObjectDango *Dango;
29
30
// Standard Entity Events
31
void Dango_Update(void);
32
void Dango_LateUpdate(void);
33
void Dango_StaticUpdate(void);
34
void Dango_Draw(void);
35
void Dango_Create(void *data);
36
void Dango_StageLoad(void);
37
#if GAME_INCLUDE_EDITOR
38
void Dango_EditorDraw(void);
39
void Dango_EditorLoad(void);
40
#endif
41
void Dango_Serialize(void);
42
43
// Extra Entity Functions
44
void Dango_DebugSpawn(void);
45
void Dango_DebugDraw(void);
46
47
void Dango_CheckOffScreen(void);
48
void Dango_CheckPlayerCollisions(void);
49
bool32 Dango_HandleMovement(StateMachine(nextState), uint8 anim);
50
51
void Dango_State_Init(void);
52
void Dango_State_Walking(void);
53
void Dango_State_Turning(void);
54
void Dango_State_Falling_Uncurled(void);
55
void Dango_State_Curling(void);
56
void Dango_State_Rolling(void);
57
void Dango_State_Falling_Curled(void);
58
void Dango_State_Uncurling(void);
59
60
#if MANIA_USE_PLUS
61
void Dango_StateTaunt_Setup(void);
62
void Dango_StateTaunt_RollIn(void);
63
void Dango_StateTaunt_KnockedRuby(void);
64
void Dango_StateTaunt_Taunting(void);
65
void Dango_StateTaunt_Turning(void);
66
void Dango_StateTaunt_RollOut(void);
67
#endif
68
69
#endif //! OBJ_DANGO_H
70
71