Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HPZ/Stegway.h
338 views
1
#ifndef OBJ_STEGWAY_H
2
#define OBJ_STEGWAY_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectStegway {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxRange;
11
uint16 aniFrames;
12
uint16 sfxRev;
13
uint16 sfxRelease;
14
};
15
16
// Entity Class
17
struct EntityStegway {
18
RSDK_ENTITY
19
StateMachine(state);
20
Vector2 startPos;
21
uint8 startDir;
22
int32 timer;
23
int32 unused1;
24
Animator mainAnimator;
25
Animator wheelAnimator;
26
Animator jetAnimator;
27
bool32 showJet;
28
int32 unused2;
29
bool32 noFloor;
30
};
31
32
// Object Entity
33
extern ObjectStegway *Stegway;
34
35
// Standard Entity Events
36
void Stegway_Update(void);
37
void Stegway_LateUpdate(void);
38
void Stegway_StaticUpdate(void);
39
void Stegway_Draw(void);
40
void Stegway_Create(void *data);
41
void Stegway_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void Stegway_EditorDraw(void);
44
void Stegway_EditorLoad(void);
45
#endif
46
void Stegway_Serialize(void);
47
48
// Extra Entity Functions
49
void Stegway_DebugSpawn(void);
50
void Stegway_DebugDraw(void);
51
52
void Stegway_CheckOffScreen(void);
53
void Stegway_HandlePlayerInteractions(void);
54
void Stegway_SetupAnims(char type, bool32 force);
55
56
void Stegway_State_Init(void);
57
void Stegway_State_Moving(void);
58
void Stegway_State_Turn(void);
59
void Stegway_State_RevUp(void);
60
void Stegway_State_RevRelease(void);
61
void Stegway_State_Dash(void);
62
63
#endif //! OBJ_STEGWAY_H
64
65