Path: blob/master/SonicMania/Objects/FBZ/Blaster.h
338 views
#ifndef OBJ_BLASTER_H1#define OBJ_BLASTER_H23#include "Game.h"45typedef enum {6BLASTER_BADNIK,7BLASTER_SHOT,8BLASTER_SHELL,9} BlasterTypes;1011// Object Class12struct ObjectBlaster {13RSDK_OBJECT14Hitbox hitboxBadnik;15Hitbox hitboxRange;16Hitbox hitboxProjectile;17uint16 aniFrames;18};1920// Entity Class21struct EntityBlaster {22RSDK_ENTITY23StateMachine(state);24uint16 unused1;25uint16 timer;26uint16 attackTimer;27Vector2 startPos;28uint8 startDir;29Animator animator;30};3132// Object Struct33extern ObjectBlaster *Blaster;3435// Standard Entity Events36void Blaster_Update(void);37void Blaster_LateUpdate(void);38void Blaster_StaticUpdate(void);39void Blaster_Draw(void);40void Blaster_Create(void *data);41void Blaster_StageLoad(void);42#if GAME_INCLUDE_EDITOR43void Blaster_EditorDraw(void);44void Blaster_EditorLoad(void);45#endif46void Blaster_Serialize(void);4748// Extra Entity Functions49void Blaster_DebugSpawn(void);50void Blaster_DebugDraw(void);5152void Blaster_HandlePlayerInteractions(void);53void Blaster_CheckOffScreen(void);5455void Blaster_State_Init(void);56void Blaster_State_Move(void);57void Blaster_State_HandleTurn(void);58void Blaster_State_AttackPlayer(void);59void Blaster_State_MagnetAttract(void);60void Blaster_State_MagnetReleased(void);61void Blaster_State_BeginShot(void);62void Blaster_State_Shot(void);63void Blaster_State_Fall(void);64void Blaster_State_Shell(void);6566#endif //! OBJ_BLASTER_H676869