Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MMZ/RPlaneShifter.h
338 views
1
#ifndef OBJ_RPLANESHIFTER_H
2
#define OBJ_RPLANESHIFTER_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectRPlaneShifter {
8
RSDK_OBJECT
9
Animator barAnimator;
10
uint16 aniFrames;
11
uint16 sfxTicTock;
12
};
13
14
// Entity Class
15
struct EntityRPlaneShifter {
16
RSDK_ENTITY
17
StateMachine(state);
18
uint32 height;
19
uint8 flags;
20
int32 rotateDir;
21
uint8 activePlayers; // if you're in the hitbox and it's spinning
22
uint8 prevActivePlayers;
23
uint8 stoodPlayers; // if you're in the hitbox at all
24
int32 unused;
25
int32 spinSpeed;
26
int32 startAngle;
27
int32 spinAngle;
28
Animator baseAnimator;
29
Hitbox hitbox;
30
};
31
32
// Object Struct
33
extern ObjectRPlaneShifter *RPlaneShifter;
34
35
// Standard Entity Events
36
void RPlaneShifter_Update(void);
37
void RPlaneShifter_LateUpdate(void);
38
void RPlaneShifter_StaticUpdate(void);
39
void RPlaneShifter_Draw(void);
40
void RPlaneShifter_Create(void *data);
41
void RPlaneShifter_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void RPlaneShifter_EditorDraw(void);
44
void RPlaneShifter_EditorLoad(void);
45
#endif
46
void RPlaneShifter_Serialize(void);
47
48
// Extra Entity Functions
49
void RPlaneShifter_DrawSprites(void);
50
51
void RPlaneShifter_HandlePlaneShift(EntityPlayer *player);
52
53
void RPlaneShifter_State_Init(void);
54
void RPlaneShifter_State_AwaitPlayer(void);
55
void RPlaneShifter_State_Spinning(void);
56
void RPlaneShifter_State_FinishSpin(void);
57
58
#endif //! OBJ_RPLANESHIFTER_H
59
60