Path: blob/master/SonicMania/Objects/FBZ/Crane.h
338 views
#ifndef OBJ_CRANE_H1#define OBJ_CRANE_H23#include "Game.h"45typedef enum {6CRANE_START_UP,7CRANE_START_DOWN,8} CraneStartTypes;910typedef enum {11CRANE_PLAYER1_ONLY,12CRANE_PLAYER2_ONLY,13CRANE_PLAYER_ALL,14} CranePlayerTypes;1516// Object Class17struct ObjectCrane {18RSDK_OBJECT19Hitbox hitboxUnused;20Hitbox hitboxGrab;21Hitbox hitboxRange;22uint16 aniFrames;23uint16 sfxGrab;24};2526// Entity Class27struct EntityCrane {28RSDK_ENTITY29StateMachine(state);30Animator frontAnimator;31Animator backAnimator;32Animator chainAnimator;33EntityPlayer *grabbedPlayer;34uint16 distance;35uint8 startType;36uint8 playerType;37Vector2 startPos;38uint8 startDir;39int32 delay;40int32 timer;41};4243// Object Struct44extern ObjectCrane *Crane;4546// Standard Entity Events47void Crane_Update(void);48void Crane_LateUpdate(void);49void Crane_StaticUpdate(void);50void Crane_Draw(void);51void Crane_Create(void *data);52void Crane_StageLoad(void);53#if GAME_INCLUDE_EDITOR54void Crane_EditorDraw(void);55void Crane_EditorLoad(void);56#endif57void Crane_Serialize(void);5859// Extra Entity Functions60void Crane_DebugSpawn(void);61void Crane_DebugDraw(void);6263void Crane_HandlePlayerInteractions(void);64void Crane_CheckOffScreen(void);6566void Crane_State_CheckOffScreen(void);67void Crane_State_Init(void);68void Crane_State_CheckForPlayers(void);69void Crane_State_LowerToGrab(void);70void Crane_State_CheckGrab(void);71void Crane_State_RiseUp(void);72void Crane_State_ToDest1stHalf(void);73void Crane_State_ToDest2ndHalf(void);74void Crane_State_DropDelay(void);75void Crane_State_ToStart1stHalf(void);76void Crane_State_ToStart2ndHalf(void);7778#endif //! OBJ_CRANE_H798081