Path: blob/master/SonicMania/Objects/HCZ/Fan.h
338 views
#ifndef OBJ_FAN_H1#define OBJ_FAN_H23#include "Game.h"45typedef enum {6FAN_V,7FAN_H,8} FanTypes;910typedef enum {11FAN_ACTIVATE_NONE,12FAN_ACTIVATE_INTERVAL,13FAN_ACTIVATE_PLATFORM,14FAN_ACTIVATE_BUTTON,15} FanActivationTypes;1617typedef enum {18FAN_DEACTIVATE_NONE,19FAN_DEACTIVATE_BUTTON,20} FanDeactivationTypes;2122// Object Class23struct ObjectFan {24RSDK_OBJECT25int32 activePlayers;26uint8 unused;27int32 minVelocity;28Hitbox hitboxTop;29Hitbox hitboxBottom;30Hitbox hitboxSides;31Hitbox playerHitbox;32uint16 aniFrames;33uint16 sfxFan;34bool32 playingFanSfx;35};3637// Entity Class38struct EntityFan {39RSDK_ENTITY40StateMachine(state);41StateMachine(stateActivate);42StateMachine(stateDeactivate);43uint8 type;44uint8 activation;45uint8 deactivation;46int32 size;47uint16 interval;48uint16 intervalOffset;49uint16 duration;50uint16 delay;51int32 buttonTag;52EntityButton *taggedButton;53Animator animator;54};5556// Object Struct57extern ObjectFan *Fan;5859// Standard Entity Events60void Fan_Update(void);61void Fan_LateUpdate(void);62void Fan_StaticUpdate(void);63void Fan_Draw(void);64void Fan_Create(void *data);65void Fan_StageLoad(void);66#if GAME_INCLUDE_EDITOR67void Fan_EditorDraw(void);68void Fan_EditorLoad(void);69#endif70void Fan_Serialize(void);7172// Extra Entity Functions73void Fan_SetupTagLink(void);7475void Fan_HandlePlayerInteractions_Top(void);76void Fan_HandlePlayerInteractions_Bottom(void);77void Fan_HandlePlayerInteractions_Left(void);78void Fan_HandlePlayerInteractions_Right(void);7980void Fan_State_Started(void);81void Fan_State_Stopped(void);8283void Fan_Activate_Interval(void);84void Fan_Activate_Button(void);85void Fan_Deactivate_Button(void);86void Fan_Activate_Platform(void);87void Fan_Activate(void);8889#endif //! OBJ_FAN_H909192