Path: blob/master/SonicMania/Objects/HCZ/PullChain.h
338 views
#ifndef OBJ_PULLCHAIN_H1#define OBJ_PULLCHAIN_H23#include "Game.h"45typedef enum {6PULLCHAIN_NORMAL,7} PullChainTypes;89typedef enum {10PULLCHAIN_INPUT_NONE,11PULLCHAIN_INPUT_LEFT,12PULLCHAIN_INPUT_RIGHT,13PULLCHAIN_INPUT_UP,14PULLCHAIN_INPUT_DOWN,15} PullChainInputMasks;1617// Object Class18struct ObjectPullChain {19RSDK_OBJECT20// left, left, left, right, right, right, up, up, up!21TABLE(int32 dunkeyCode[18], { 0, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 2, 0, 3, 0, 3, 0, 3 });22uint16 aniFrames;23uint16 sfxPullChain;24};2526// Entity Class27struct EntityPullChain {28MANIA_BUTTON_BASE2930Animator hookAnimator;31int32 length;32int32 decorMode;33uint8 activePlayers;34uint8 releasedPlayers;35Vector2 basePos;36int32 unused;37int32 chainOffset;38int32 grabDelay[PLAYER_COUNT];39uint8 codeButtonMasks;40int32 cheatCodeInputs[18];41Hitbox hitbox;42Animator chainAnimator;43};4445// Object Struct46extern ObjectPullChain *PullChain;4748// Standard Entity Events49void PullChain_Update(void);50void PullChain_LateUpdate(void);51void PullChain_StaticUpdate(void);52void PullChain_Draw(void);53void PullChain_Create(void *data);54void PullChain_StageLoad(void);55#if GAME_INCLUDE_EDITOR56void PullChain_EditorDraw(void);57void PullChain_EditorLoad(void);58#endif59void PullChain_Serialize(void);6061// Extra Entity Functions62#if GAME_VERSION == VER_10063bool32 PullChain_HandleDunkeyCode(EntityPlayer *player);64#endif6566#endif //! OBJ_PULLCHAIN_H676869