Path: blob/master/SonicMania/Objects/ERZ/PhantomHand.h
338 views
#ifndef OBJ_PHANTOMHAND_H1#define OBJ_PHANTOMHAND_H23#include "Game.h"45// Object Class6struct ObjectPhantomHand {7RSDK_OBJECT8TABLE(int32 debrisInfo[41], { 10, 0, 0, -0x20000, -0x10000, 1, 0, -0x10000, -0x10000, 2, 0, 0x10000, -0x10000, 3, 0, 0x20000,9-0x10000, 4, 0, -0x20000, -0x8000, 5, 0, -0x10000, -0x8000, 6, 0, 0x10000, -0x8000, 7, 0, 0x20000,100x8000, 8, 0, 0x20000, -0x8000, 9, 0, 0x20000, -0x4000 });11bool32 grabbedPlayers[PLAYER_COUNT];12Hitbox hitbox;13uint16 aniFrames;14};1516// Entity Class17struct EntityPhantomHand {18RSDK_ENTITY19StateMachine(state);20int32 grabTimer;21int32 timer;22int32 timerDecreaseSpeed;23int32 scaleAngle;24Vector2 targetPos;25Entity *parent;26bool32 doScanlineCB;27Animator handAnimator;28Animator crystalAnimator;29Animator shineAnimator;30};3132// Object Struct33extern ObjectPhantomHand *PhantomHand;3435// Standard Entity Events36void PhantomHand_Update(void);37void PhantomHand_LateUpdate(void);38void PhantomHand_StaticUpdate(void);39void PhantomHand_Draw(void);40void PhantomHand_Create(void *data);41void PhantomHand_StageLoad(void);42#if GAME_INCLUDE_EDITOR43void PhantomHand_EditorDraw(void);44void PhantomHand_EditorLoad(void);45#endif46void PhantomHand_Serialize(void);4748// Extra Entity Functions49void PhantomHand_CheckPlayerGrab(int32 playerX, int32 playerY);5051void PhantomHand_State_Summon(void);52void PhantomHand_State_Appear(void);53void PhantomHand_State_TryGrabPlayer(void); // 1P54void PhantomHand_State_TryGrabPlayers(void); // 2P or more55void PhantomHand_State_GrabbedPlayer(void);56void PhantomHand_State_Clasp(void);57void PhantomHand_State_Crystalize(void);58void PhantomHand_State_Shine(void);59void PhantomHand_State_BreakApart(void);60void PhantomHand_State_Disappear(void);6162#endif //! OBJ_PHANTOMHAND_H636465