Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/AIZ/AIZTornadoPath.h
338 views
1
#ifndef OBJ_AIZTORNADOPATH_H
2
#define OBJ_AIZTORNADOPATH_H
3
4
#include "Game.h"
5
6
typedef enum {
7
AIZTORNADOPATH_START,
8
AIZTORNADOPATH_DUD,
9
AIZTORNADOPATH_SETSPEED,
10
AIZTORNADOPATH_SETCAMERA,
11
AIZTORNADOPATH_DISABLEINTERACTIONS,
12
AIZTORNADOPATH_EXITTORNADO,
13
AIZTORNADOPATH_ENTERTORNADO,
14
AIZTORNADOPATH_TARGETNODE,
15
} AIZTornadoPathTypes;
16
17
// Object Class
18
struct ObjectAIZTornadoPath {
19
RSDK_OBJECT
20
EntityAIZTornado *tornado;
21
EntityCamera *camera;
22
Vector2 moveVel;
23
uint16 aniFrames; // prolly editor-only
24
Animator unusedAnimator;
25
};
26
27
// Entity Class
28
struct EntityAIZTornadoPath {
29
RSDK_ENTITY
30
StateMachine(state);
31
int32 type;
32
int32 targetSpeed;
33
int32 timer;
34
bool32 easeToSpeed;
35
int32 speed;
36
Animator unusedAnimator;
37
};
38
39
// Object Struct
40
extern ObjectAIZTornadoPath *AIZTornadoPath;
41
42
// Standard Entity Events
43
void AIZTornadoPath_Update(void);
44
void AIZTornadoPath_LateUpdate(void);
45
void AIZTornadoPath_StaticUpdate(void);
46
void AIZTornadoPath_Draw(void);
47
void AIZTornadoPath_Create(void *data);
48
void AIZTornadoPath_StageLoad(void);
49
#if GAME_INCLUDE_EDITOR
50
void AIZTornadoPath_EditorDraw(void);
51
void AIZTornadoPath_EditorLoad(void);
52
#endif
53
void AIZTornadoPath_Serialize(void);
54
55
// Extra Entity Functions
56
void AIZTornadoPath_HandleMoveSpeed(void);
57
void AIZTornadoPath_State_SetTornadoSpeed(void);
58
void AIZTornadoPath_State_SetPlayerCamera(void);
59
void AIZTornadoPath_State_DisablePlayerInteractions(void);
60
void AIZTornadoPath_State_ExitTornadoSequence(void);
61
void AIZTornadoPath_State_PrepareCatchPlayer(void);
62
void AIZTornadoPath_State_CatchPlayer(void);
63
64
#endif //! OBJ_AIZTORNADOPATH_H
65
66