Path: blob/master/SonicMania/Objects/HCZ/ScrewMobile.h
338 views
#ifndef OBJ_SCREWMOBILE_H1#define OBJ_SCREWMOBILE_H23#include "Game.h"45typedef enum {6SCREWMOBILE_MOBILE,7SCREWMOBILE_BOMB,8} ScrewMobileTypes;910// Object Class11struct ObjectScrewMobile {12RSDK_OBJECT13Hitbox hitboxCockpit;14Hitbox hitboxDepthCharge;15bool32 playingFanSfx;16uint8 fanSfxTimer;17uint16 aniFrames;18uint16 sfxButton;19uint16 sfxEggMobile;20uint16 sfxBigFan;21uint16 sfxImpact;22};2324// Entity Class25struct EntityScrewMobile {26RSDK_ENTITY27StateMachine(state);28StateMachine(stateDraw);29Vector2 startPos;30bool32 bombPress;31uint8 timer;32int32 whirlPoolTimer;33int32 whirlpoolHeight;34int32 invincibilityTimer;35uint8 health;36EntityWhirlpool *whirlpool;37Animator mobileAnimator;38Animator propellerAnimator;39Animator rackAnimator;40Animator whirlpoolAnimator;41Animator whirlpoolTopAnimator;42Animator whirlpoolBottomAnimator;43};4445// Object Struct46extern ObjectScrewMobile *ScrewMobile;4748// Standard Entity Events49void ScrewMobile_Update(void);50void ScrewMobile_LateUpdate(void);51void ScrewMobile_StaticUpdate(void);52void ScrewMobile_Draw(void);53void ScrewMobile_Create(void *data);54void ScrewMobile_StageLoad(void);55#if GAME_INCLUDE_EDITOR56void ScrewMobile_EditorDraw(void);57void ScrewMobile_EditorLoad(void);58#endif59void ScrewMobile_Serialize(void);6061// Extra Entity Functions62void ScrewMobile_State_CheckPlayerEnter(void);63void ScrewMobile_State_PlayerRiding(void);64void ScrewMobile_State_BossFinished(void);65void ScrewMobile_State_Idle(void);66void ScrewMobile_Draw_ScrewMobile(void);6768void ScrewMobile_StateDepthCharge_Active(void);69void ScrewMobile_StateDepthCharge_Debris(void);70void ScrewMobile_Draw_DepthCharge(void);7172#endif //! OBJ_SCREWMOBILE_H737475