Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/UFO/UFO_Circuit.h
338 views
1
#ifndef OBJ_UFO_CIRCUIT_H
2
#define OBJ_UFO_CIRCUIT_H
3
4
#include "Game.h"
5
6
typedef enum { UFO_CIRCUIT_MODE_UNUSED } UFO_CircuitModes;
7
8
typedef enum {
9
UFO_CIRCUIT_THRTLE_INVALID,
10
UFO_CIRCUIT_THRTLE_NONE,
11
UFO_CIRCUIT_THRTLE_SLOW,
12
UFO_CIRCUIT_THRTLE_MED,
13
UFO_CIRCUIT_THRTLE_FAST,
14
} UFO_CircuitThrottles;
15
16
// Object Class
17
struct ObjectUFO_Circuit {
18
RSDK_OBJECT
19
int32 nodeCount;
20
int32 decelerationNoMach;
21
int32 decelerationMach;
22
Animator unusedAnimator1;
23
uint16 aniFrames; // unused
24
uint16 ufoModel;
25
int32 unused1;
26
uint16 emeraldModel;
27
uint16 sceneIndex;
28
};
29
30
// Entity Class
31
struct EntityUFO_Circuit {
32
RSDK_ENTITY
33
StateMachine(state);
34
uint8 mode;
35
uint8 throttle;
36
bool32 startNode;
37
bool32 reverse;
38
EntityUFO_Circuit *curNode;
39
EntityUFO_Circuit *nextNode;
40
EntityUFO_Circuit *prevNode;
41
int32 angleY;
42
int32 height;
43
int32 topSpeed;
44
Vector2 startPos;
45
Matrix unusedMatrix1;
46
Matrix matTransform;
47
Matrix matWorld;
48
Matrix matNormal;
49
Animator ufoAnimator;
50
};
51
52
// Object Struct
53
extern ObjectUFO_Circuit *UFO_Circuit;
54
55
// Standard Entity Events
56
void UFO_Circuit_Update(void);
57
void UFO_Circuit_LateUpdate(void);
58
void UFO_Circuit_StaticUpdate(void);
59
void UFO_Circuit_Draw(void);
60
void UFO_Circuit_Create(void *data);
61
void UFO_Circuit_StageLoad(void);
62
#if GAME_INCLUDE_EDITOR
63
void UFO_Circuit_EditorDraw(void);
64
void UFO_Circuit_EditorLoad(void);
65
#endif
66
void UFO_Circuit_Serialize(void);
67
68
// Extra Entity Functions
69
void UFO_Circuit_HandleSpeedSetup(void);
70
void UFO_Circuit_HandleNodeSpeeds(void);
71
bool32 UFO_Circuit_CheckNodeChange(void);
72
void UFO_Circuit_State_UFO(void);
73
void UFO_Circuit_State_Caught(void);
74
75
#endif //! OBJ_UFO_CIRCUIT_H
76
77