Path: blob/master/SonicMania/Objects/HCZ/Jellygnite.h
338 views
#ifndef OBJ_JELLYGNITE_H1#define OBJ_JELLYGNITE_H23#include "Game.h"45typedef enum {6JELLYGNITE_ANI_FLOATING,7JELLYGNITE_ANI_ANGRY,8JELLYGNITE_ANI_FLASHING,9} JellygniteAnimIDs;1011// Object Class12struct ObjectJellygnite {13RSDK_OBJECT14Hitbox hitbox;15Hitbox hitboxUnused;16uint16 aniFrames;17uint16 sfxGrab;18uint16 sfxElectrify;19};2021// Entity Class22struct EntityJellygnite {23RSDK_ENTITY24StateMachine(state);25Vector2 startPos;26uint8 startDir;27uint8 timer;28uint8 grabDelay;29int32 frontTentacleAngle;30int32 oscillateAngle;31EntityPlayer *grabbedPlayer;32uint8 shakeTimer;33uint8 shakeCount;34uint8 lastShakeFlags;35uint8 prevAnimationID;36Animator bodyAnimator;37Animator frontTentacleAnimator;38Animator backTentacleAnimator;39};4041// Object Struct42extern ObjectJellygnite *Jellygnite;4344// Standard Entity Events45void Jellygnite_Update(void);46void Jellygnite_LateUpdate(void);47void Jellygnite_StaticUpdate(void);48void Jellygnite_Draw(void);49void Jellygnite_Create(void *data);50void Jellygnite_StageLoad(void);51#if GAME_INCLUDE_EDITOR52void Jellygnite_EditorDraw(void);53void Jellygnite_EditorLoad(void);54#endif55void Jellygnite_Serialize(void);5657// Extra Entity Functions58void Jellygnite_DebugSpawn(void);59void Jellygnite_DebugDraw(void);6061void Jellygnite_SetupAnimations(uint8 animationID);6263void Jellygnite_CheckPlayerCollisions(void);64void Jellygnite_HandlePlayerStruggle(void);65bool32 Jellygnite_CheckInWater(EntityPlayer *player);6667void Jellygnite_DrawBackTentacle(void);68void Jellygnite_DrawFrontTentacle(void);6970void Jellygnite_State_Init(void);71void Jellygnite_State_Swimming(void);72void Jellygnite_State_GrabbedPlayer(void);73void Jellygnite_State_Explode(void);7475#endif //! OBJ_JELLYGNITE_H767778