Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/AIZ/Rhinobot.h
338 views
1
#ifndef OBJ_RHINOBOT_H
2
#define OBJ_RHINOBOT_H
3
4
#include "Game.h"
5
6
#if MANIA_USE_PLUS
7
// Object Class
8
struct ObjectRhinobot {
9
RSDK_OBJECT
10
Hitbox hitboxBadnik;
11
uint16 aniFrames;
12
uint16 sfxHuff;
13
};
14
15
// Entity Class
16
struct EntityRhinobot {
17
RSDK_ENTITY
18
StateMachine(state);
19
StateMachine(stateDelay);
20
int32 unused1;
21
int32 timer;
22
int32 skidDir;
23
int32 moveDir;
24
bool32 drawDust;
25
int32 acceleration;
26
int32 topSpeed;
27
Vector2 startPos;
28
uint8 startDir;
29
Animator bodyAnimator;
30
Animator dustAnimator;
31
};
32
33
// Object Struct
34
extern ObjectRhinobot *Rhinobot;
35
36
// Standard Entity Events
37
void Rhinobot_Update(void);
38
void Rhinobot_LateUpdate(void);
39
void Rhinobot_StaticUpdate(void);
40
void Rhinobot_Draw(void);
41
void Rhinobot_Create(void *data);
42
void Rhinobot_StageLoad(void);
43
#if GAME_INCLUDE_EDITOR
44
void Rhinobot_EditorDraw(void);
45
void Rhinobot_EditorLoad(void);
46
#endif
47
void Rhinobot_Serialize(void);
48
49
// Extra Entity Functions
50
void Rhinobot_DebugSpawn(void);
51
void Rhinobot_DebugDraw(void);
52
53
bool32 Rhinobot_CheckTileCollisions(void);
54
void Rhinobot_CheckPlayerCollisions(void);
55
void Rhinobot_CheckOffScreen(void);
56
57
void Rhinobot_Delay_Charge(void);
58
void Rhinobot_Delay_Skidding(void);
59
void Rhinobot_Delay_SkidFinish(void);
60
61
void Rhinobot_State_Init(void);
62
void Rhinobot_State_Moving(void);
63
void Rhinobot_State_Skidding(void);
64
void Rhinobot_State_Idle(void);
65
void Rhinobot_State_Fall(void);
66
67
#endif
68
69
#endif //! OBJ_RHINOBOT_H
70
71