Path: blob/master/SonicMania/Objects/FBZ/FBZMissile.h
338 views
#ifndef OBJ_FBZMISSILE_H1#define OBJ_FBZMISSILE_H23#include "Game.h"45typedef enum {6FBZMISSILE_LAUNCHER_V,7FBZMISSILE_LAUNCHER_H,8FBZMISSILE_HULL,9FBZMISSILE_VERTICAL,10FBZMISSILE_HORIZONTAL,11} FBZMissileTypes;1213// Object Class14struct ObjectFBZMissile {15RSDK_OBJECT16Hitbox hitboxMissileV;17Hitbox hitboxMissileH;18Hitbox hitboxHull;19TABLE(int32 velocities[8], { 0x10000, 0xE000, 0x12000, 0x14000, 0x10000, 0xE000, 0xC000, 0xE000 });20int32 velocityID;21uint16 aniFrames;22uint16 sfxPush;23uint16 sfxPush2;24uint16 sfxExplosion;25};2627// Entity Class28struct EntityFBZMissile {29RSDK_ENTITY30StateMachine(state);31StateMachine(stateDraw);32FBZMissileTypes type;33uint8 interval;34uint8 intervalOffset;35int32 timer;36Animator animator;37};3839// Object Struct40extern ObjectFBZMissile *FBZMissile;4142// Standard Entity Events43void FBZMissile_Update(void);44void FBZMissile_LateUpdate(void);45void FBZMissile_StaticUpdate(void);46void FBZMissile_Draw(void);47void FBZMissile_Create(void *data);48void FBZMissile_StageLoad(void);49#if GAME_INCLUDE_EDITOR50void FBZMissile_EditorDraw(void);51void FBZMissile_EditorLoad(void);52#endif53void FBZMissile_Serialize(void);5455// Extra Entity Functions56void FBZMissile_StateLauncherV_Delay(void);57void FBZMissile_StateLauncherV_Launch(void);5859void FBZMissile_StateLauncherH_Fire(void);60void FBZMissile_StateLauncherH_Prepare(void);6162void FBZMissile_StateVertical_Rise(void);63void FBZMissile_StateVertical_Fall(void);64void FBZMissile_StateHorizontal_Move(void);6566void FBZMissile_State_Hull(void);6768#endif //! OBJ_FBZMISSILE_H697071