Path: blob/master/SonicMania/Objects/TMZ/LaunchSpring.h
338 views
#ifndef OBJ_LAUNCHSPRING_H1#define OBJ_LAUNCHSPRING_H23#include "Game.h"45typedef enum {6LAUNCHSPRING_SPINNING,7LAUNCHSPRING_CANNON,8LAUNCHSPRING_ROTATE_45DEG,9LAUNCHSPRING_ROTATE_90DEG,10LAUNCHSPRING_ROTATE_135DEG,11LAUNCHSPRING_ROTATE_180DEG,12} LaunchSpringTypes;1314// Object Class15struct ObjectLaunchSpring {16RSDK_OBJECT17Hitbox hitbox;18bool32 isTMZ;19uint16 aniFrames;20uint16 sfxGrab;21uint16 sfxClack;22uint16 sfxSpeedBooster;23};2425// Entity Class26struct EntityLaunchSpring {27RSDK_ENTITY28StateMachine(state);29Animator mainAnimator;30Animator jointAnimator;31Animator springAnimator;32uint8 type;33uint8 rotDir;34uint8 rotSpeed;35bool32 manual;36bool32 strict;37uint8 timer;38uint8 springPivot;39uint8 autoFireTimer;40int16 minAngle;41int16 maxAngle;42EntityPlayer *playerPtr;43};4445// Object Struct46extern ObjectLaunchSpring *LaunchSpring;4748// Standard Entity Events49void LaunchSpring_Update(void);50void LaunchSpring_LateUpdate(void);51void LaunchSpring_StaticUpdate(void);52void LaunchSpring_Draw(void);53void LaunchSpring_Create(void *data);54void LaunchSpring_StageLoad(void);55#if GAME_INCLUDE_EDITOR56void LaunchSpring_EditorDraw(void);57void LaunchSpring_EditorLoad(void);58#endif59void LaunchSpring_Serialize(void);6061// Extra Entity Functions62bool32 LaunchSpring_CheckFireworkActive(EntityPlayer *player);63void LaunchSpring_CheckPlayerCollisions(void *nextState);6465void LaunchSpring_LaunchPlayer(void);66void LaunchSpring_State_Spinning(void);67void LaunchSpring_State_Spinning_GrabbedPlayer(void);68void LaunchSpring_State_Spinning_ReadyToFire(void);69void LaunchSpring_State_Spinning_FiredPlayer(void);70void LaunchSpring_State_Spinning_ReadyUp(void);71void LaunchSpring_State_Cannon(void);72void LaunchSpring_State_Cannon_Fire_Automatic(void);73void LaunchSpring_State_Cannon_Fire_Manual(void);74void LaunchSpring_State_Cannon_FiredPlayer(void);75void LaunchSpring_State_Rotating(void);76void LaunchSpring_State_Rotate_Fire_Automatic(void);77void LaunchSpring_State_Rotate_Fire_Manual(void);78void LaunchSpring_State_Rotating_FiredPlayer(void);7980#endif //! OBJ_LAUNCHSPRING_H818283