Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/CPZ/RotatingStair.h
338 views
1
#ifndef OBJ_ROTATINGSTAIR_H
2
#define OBJ_ROTATINGSTAIR_H
3
4
#include "Game.h"
5
6
typedef enum {
7
ROTATINGSTAIR_LEFT,
8
ROTATINGSTAIR_DOWN,
9
ROTATINGSTAIR_RIGHT,
10
ROTATINGSTAIR_UP,
11
ROTATINGSTAIR_LEFT_INTERVAL,
12
ROTATINGSTAIR_DOWN_INTERVAL,
13
ROTATINGSTAIR_RIGHT_INTERVAL,
14
ROTATINGSTAIR_UP_INTERVAL,
15
} RotatingStairModes;
16
17
// Object Class
18
struct ObjectRotatingStair {
19
RSDK_OBJECT
20
uint8 unused; // its set to 0, but its not actually used
21
};
22
23
// Entity Class
24
struct EntityRotatingStair {
25
RSDK_ENTITY
26
StateMachine(state);
27
StateMachine(stateCollide);
28
RotatingStairModes mode;
29
Vector2 amplitude;
30
int32 speed;
31
bool32 hasTension;
32
int8 frameID;
33
uint8 collision;
34
Vector2 tileOrigin;
35
Vector2 centerPos;
36
Vector2 drawPos;
37
Vector2 collisionOffset;
38
int32 stood;
39
int32 timer;
40
int32 stoodAngle;
41
uint8 stoodPlayers;
42
uint8 pushPlayersL;
43
uint8 pushPlayersR;
44
Hitbox hitbox;
45
Animator animator;
46
int32 childCount;
47
48
uint16 oscOff;
49
int32 duration;
50
int32 interval;
51
};
52
53
// Object Struct
54
extern ObjectRotatingStair *RotatingStair;
55
56
// Standard Entity Events
57
void RotatingStair_Update(void);
58
void RotatingStair_LateUpdate(void);
59
void RotatingStair_StaticUpdate(void);
60
void RotatingStair_Draw(void);
61
void RotatingStair_Create(void *data);
62
void RotatingStair_StageLoad(void);
63
#if GAME_INCLUDE_EDITOR
64
void RotatingStair_EditorDraw(void);
65
void RotatingStair_EditorLoad(void);
66
#endif
67
void RotatingStair_Serialize(void);
68
69
// Extra Entity Functions
70
void RotatingStair_State_Move(void);
71
void RotatingStair_State_Move_Intervals(void);
72
73
#endif //! OBJ_ROTATINGSTAIR_H
74
75