Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/HangConveyor.h
338 views
1
#ifndef OBJ_HANGCONVEYOR_H
2
#define OBJ_HANGCONVEYOR_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectHangConveyor {
8
RSDK_OBJECT
9
uint16 aniFrames;
10
};
11
12
// Entity Class
13
struct EntityHangConveyor {
14
RSDK_ENTITY
15
StateMachine(state);
16
int32 length;
17
uint8 movementActivePlayers;
18
uint8 activePlayersTop;
19
uint8 activePlayersBottom;
20
uint8 checkableActivePlayers;
21
Vector2 endPosTopLeft;
22
Vector2 endPosTopRight;
23
Vector2 endPosBottomLeft;
24
Vector2 endPosBottomRight;
25
int32 grabDelayTop[PLAYER_COUNT];
26
int32 grabDelayBottom[PLAYER_COUNT];
27
Vector2 playerPositions[PLAYER_COUNT];
28
int32 fanTimer[PLAYER_COUNT];
29
Vector2 startPos;
30
int32 unused;
31
Hitbox hitboxFallCheckTop;
32
Hitbox hitboxFallCheckBottom;
33
Hitbox hitboxSpikeBallRange;
34
Animator endAnimator;
35
Animator startAnimator;
36
Animator middleAnimator;
37
};
38
39
// Object Struct
40
extern ObjectHangConveyor *HangConveyor;
41
42
// Standard Entity Events
43
void HangConveyor_Update(void);
44
void HangConveyor_LateUpdate(void);
45
void HangConveyor_StaticUpdate(void);
46
void HangConveyor_Draw(void);
47
void HangConveyor_Create(void *data);
48
void HangConveyor_StageLoad(void);
49
#if GAME_INCLUDE_EDITOR
50
void HangConveyor_EditorDraw(void);
51
void HangConveyor_EditorLoad(void);
52
#endif
53
void HangConveyor_Serialize(void);
54
55
// Extra Entity Functions
56
void HangConveyor_DrawSprites(void);
57
58
void HangConveyor_SetupHitboxes(void);
59
void HangConveyor_HandlePlayerInteractions(void);
60
61
#endif //! OBJ_HANGCONVEYOR_H
62
63