Path: blob/master/SonicMania/Objects/ERZ/PhantomShinobi.h
338 views
#ifndef OBJ_PHANTOMSHINOBI_H1#define OBJ_PHANTOMSHINOBI_H23#include "Game.h"45// Object Class6struct ObjectPhantomShinobi {7RSDK_OBJECT8Hitbox hitbox;9uint16 aniFrames;10uint16 sfxBlade;11uint16 sfxHit;12};1314// Entity Class15struct EntityPhantomShinobi {16RSDK_ENTITY17StateMachine(state);18Vector2 startPos;19int32 timer;20int32 invincibilityTimer;21int32 unused;22int32 finRadius;23int32 rotStore;24int32 rotSpeed;25int32 numBounces;26int32 attackCount;27bool32 prevOnGround;28Hitbox outerBox;29Hitbox innerBox;30Animator bodyAnimator;31Animator armAnimator;32Animator finAnimator;33};3435// Object Struct36extern ObjectPhantomShinobi *PhantomShinobi;3738// Standard Entity Events39void PhantomShinobi_Update(void);40void PhantomShinobi_LateUpdate(void);41void PhantomShinobi_StaticUpdate(void);42void PhantomShinobi_Draw(void);43void PhantomShinobi_Create(void *data);44void PhantomShinobi_StageLoad(void);45#if GAME_INCLUDE_EDITOR46void PhantomShinobi_EditorDraw(void);47void PhantomShinobi_EditorLoad(void);48#endif49void PhantomShinobi_Serialize(void);5051// Extra Entity Functions52void PhantomShinobi_CheckPlayerCollisions(void);53void PhantomShinobi_Hit(void);54void PhantomShinobi_HandleTileCollisions(void);55void PhantomShinobi_ResetStates(void);5657void PhantomShinobi_State_EnterShinobi(void);58void PhantomShinobi_State_AttackDelay(void);59void PhantomShinobi_State_SetupAttack(void);60void PhantomShinobi_State_Moving(void);61void PhantomShinobi_State_PrepareFinAttack(void);62void PhantomShinobi_State_ExtendFins(void);63void PhantomShinobi_State_RetractFins(void);64void PhantomShinobi_State_FinishedAttack(void);6566bool32 PhantomShinobi_SfxCheck_ShinobiBlade(void);6768#endif //! OBJ_PHANTOMSHINOBI_H697071