Path: blob/master/SonicMania/Objects/UFO/UFO_Circuit.h
338 views
#ifndef OBJ_UFO_CIRCUIT_H1#define OBJ_UFO_CIRCUIT_H23#include "Game.h"45typedef enum { UFO_CIRCUIT_MODE_UNUSED } UFO_CircuitModes;67typedef enum {8UFO_CIRCUIT_THRTLE_INVALID,9UFO_CIRCUIT_THRTLE_NONE,10UFO_CIRCUIT_THRTLE_SLOW,11UFO_CIRCUIT_THRTLE_MED,12UFO_CIRCUIT_THRTLE_FAST,13} UFO_CircuitThrottles;1415// Object Class16struct ObjectUFO_Circuit {17RSDK_OBJECT18int32 nodeCount;19int32 decelerationNoMach;20int32 decelerationMach;21Animator unusedAnimator1;22uint16 aniFrames; // unused23uint16 ufoModel;24int32 unused1;25uint16 emeraldModel;26uint16 sceneIndex;27};2829// Entity Class30struct EntityUFO_Circuit {31RSDK_ENTITY32StateMachine(state);33uint8 mode;34uint8 throttle;35bool32 startNode;36bool32 reverse;37EntityUFO_Circuit *curNode;38EntityUFO_Circuit *nextNode;39EntityUFO_Circuit *prevNode;40int32 angleY;41int32 height;42int32 topSpeed;43Vector2 startPos;44Matrix unusedMatrix1;45Matrix matTransform;46Matrix matWorld;47Matrix matNormal;48Animator ufoAnimator;49};5051// Object Struct52extern ObjectUFO_Circuit *UFO_Circuit;5354// Standard Entity Events55void UFO_Circuit_Update(void);56void UFO_Circuit_LateUpdate(void);57void UFO_Circuit_StaticUpdate(void);58void UFO_Circuit_Draw(void);59void UFO_Circuit_Create(void *data);60void UFO_Circuit_StageLoad(void);61#if GAME_INCLUDE_EDITOR62void UFO_Circuit_EditorDraw(void);63void UFO_Circuit_EditorLoad(void);64#endif65void UFO_Circuit_Serialize(void);6667// Extra Entity Functions68void UFO_Circuit_HandleSpeedSetup(void);69void UFO_Circuit_HandleNodeSpeeds(void);70bool32 UFO_Circuit_CheckNodeChange(void);71void UFO_Circuit_State_UFO(void);72void UFO_Circuit_State_Caught(void);7374#endif //! OBJ_UFO_CIRCUIT_H757677