Path: blob/master/SonicMania/Objects/HCZ/Current.h
338 views
#ifndef OBJ_CURRENT_H1#define OBJ_CURRENT_H23#include "Game.h"45typedef enum {6CURRENT_C_LEFT,7CURRENT_C_RIGHT,8CURRENT_C_UP,9CURRENT_C_DOWN,10CURRENT_W_LEFT,11CURRENT_W_RIGHT,12CURRENT_W_UP,13CURRENT_W_DOWN,14} CurrentTypes;1516typedef enum {17CURRENT_CHILD_NONE,18CURRENT_CHILD_WIND,19CURRENT_CHILD_BUBBLE,20} CurrentChildTypes;2122// Object Class23struct ObjectCurrent {24RSDK_OBJECT25uint8 activePlayers;26Animator animator;27uint16 aniFrames;28uint16 sfxRush;29};3031// Entity Class32struct EntityCurrent {33RSDK_ENTITY34StateMachine(state);35CurrentTypes type;36Vector2 size;37uint8 strength;38Hitbox hitbox;39uint8 activePlayers;40Vector2 playerPositions[PLAYER_COUNT];41int32 buttonTag;42EntityButton *taggedButton;43bool32 activated;44PlaneFilterTypes planeFilter;45bool32 waterOnly;46bool32 fbzAchievement;47Animator animator;48};4950// Object Struct51extern ObjectCurrent *Current;5253// Standard Entity Events54void Current_Update(void);55void Current_LateUpdate(void);56void Current_StaticUpdate(void);57void Current_Draw(void);58void Current_Create(void *data);59void Current_StageLoad(void);60#if GAME_INCLUDE_EDITOR61void Current_EditorDraw(void);62void Current_EditorLoad(void);63#endif64void Current_Serialize(void);6566// Extra Entity Functions67void Current_SetupTagLink(void);68Vector2 Current_GetBubbleSpawnPosHorizontal(uint8 right);69Vector2 Current_GetBubbleSpawnPosVertical(uint8 down);7071void Current_State_WaterLeft(void);72void Current_State_WaterRight(void);73void Current_State_WaterUp(void);74void Current_State_WaterDown(void);75void Current_State_PushLeft(void);76void Current_State_PushRight(void);77void Current_State_PushUp(void);78void Current_State_PushDown(void);79void Current_State_Child(void);8081void Current_PlayerState_Left(void);82void Current_PlayerState_Right(void);83void Current_PlayerState_Up(void);84void Current_PlayerState_Down(void);8586#endif //! OBJ_CURRENT_H878889