Path: blob/master/SonicMania/Objects/MSZ/RollerMKII.h
338 views
#ifndef OBJ_ROLLERMKII_H1#define OBJ_ROLLERMKII_H23#include "Game.h"45// Object Class6struct ObjectRollerMKII {7RSDK_OBJECT8Hitbox hitboxBadnik;9Hitbox hitboxObject;10Hitbox hitboxInner_Rolling;11Hitbox hitboxOuter_Rolling;12Hitbox hitboxInner_Idle;13Hitbox hitboxOuter_Idle;14uint16 aniFrames;15uint16 sfxBumper;16uint16 sfxJump;17uint16 sfxDropDash;18uint16 sfxRelease;19uint16 sfxSkidding;20};2122// Entity Class23struct EntityRollerMKII {24RSDK_ENTITY25StateMachine(state);26Vector2 startPos;27uint8 startDir;28uint8 timer;29bool32 touchedGround;30EntityPlayer *playerPtr;31Animator animator;32};3334// Object Struct35extern ObjectRollerMKII *RollerMKII;3637// Standard Entity Events38void RollerMKII_Update(void);39void RollerMKII_LateUpdate(void);40void RollerMKII_StaticUpdate(void);41void RollerMKII_Draw(void);42void RollerMKII_Create(void *data);43void RollerMKII_StageLoad(void);44#if GAME_INCLUDE_EDITOR45void RollerMKII_EditorDraw(void);46void RollerMKII_EditorLoad(void);47#endif48void RollerMKII_Serialize(void);4950// Extra Entity Functions51void RollerMKII_DebugSpawn(void);52void RollerMKII_DebugDraw(void);5354void RollerMKII_CheckOffScreen(void);5556void RollerMKII_CheckPlayerCollisions(void);57void RollerMKII_CheckPlayerCollisions_Rolling(void);58int32 RollerMKII_HandleObjectCollisions(Entity *otherEntity, Hitbox *hitbox);59bool32 RollerMKII_HandlePlatformCollisions(EntityPlatform *platform);60void RollerMKII_HandleCollisions(void);6162void RollerMKII_State_Init(void);63void RollerMKII_State_Idle(void);64void RollerMKII_State_SpinUp(void);65void RollerMKII_State_RollDelay(void);66void RollerMKII_State_Rolling_Air(void);67void RollerMKII_State_Rolling_Ground(void);68void RollerMKII_State_Bumped(void);6970#endif //! OBJ_ROLLERMKII_H717273