Path: blob/master/SonicMania/Objects/SSZ/Beanstalk.h
338 views
#ifndef OBJ_BEANSTALK_H1#define OBJ_BEANSTALK_H23#include "Game.h"45typedef enum {6BEANSTALK_BEGIN,7BEANSTALK_NODE,8BEANSTALK_PLATFORM,9BEANSTALK_CHOMPER,10} BeanstalkTypes;1112// Object Class13struct ObjectBeanstalk {14RSDK_OBJECT15uint16 aniFrames;16Hitbox hitboxSeed;17Hitbox hitboxPlatform;18Hitbox hitboxPlant;19uint16 sfxImpact;20uint16 sfxBeanNode;21uint16 sfxBeanChomp;22};2324// Entity Class25struct EntityBeanstalk {26RSDK_ENTITY27StateMachine(state);28uint8 type;29int32 bezCtrlAngle;30int32 bezCtrlLength;31bool32 forceEnd;32uint8 moveAngle;33int32 timer;34uint16 curBezierPos;35int32 size;36int32 bezierInc;37int32 bezierPos;38uint8 curNodeID;39uint8 curDecorID;40bool32 setupDecorNodeID;41Vector2 startPos;42Vector2 platformPos;43int32 stoodAngle;44int32 chomperOffset;45uint8 activePlayers;46Animator nodeAnimator;47Animator plantAnimator;48Animator fillerAnimator;49bool32 startGrowth;50bool32 shown;51bool32 finished;52};5354// Object Struct55extern ObjectBeanstalk *Beanstalk;5657// Standard Entity Events58void Beanstalk_Update(void);59void Beanstalk_LateUpdate(void);60void Beanstalk_StaticUpdate(void);61void Beanstalk_Draw(void);62void Beanstalk_Create(void *data);63void Beanstalk_StageLoad(void);64#if GAME_INCLUDE_EDITOR65void Beanstalk_EditorDraw(void);66void Beanstalk_EditorLoad(void);67#endif68void Beanstalk_Serialize(void);6970// Extra Entity Functions71int32 Beanstalk_GetNextNodeDistance(void);72int32 Beanstalk_GetRemainingDistance(void);73int32 Beanstalk_GetBezierInc(void);7475void Beanstalk_DrawNodes(void);76void Beanstalk_DrawCreationNode(void);7778void Beanstalk_HandleNodeMovement(void);79void Beanstalk_HandleNodeAppear(void);8081void Beanstalk_CheckPlayerCollisions_Platform(void);82void Beanstalk_CheckPlayerCollisions_Chomper(void);8384void Beanstalk_State_Init(void);85void Beanstalk_StateDirt_WaitForStart(void);86void Beanstalk_StateDirt_GrowthDelay(void);87void Beanstalk_StateDirt_Grow(void);8889void Beanstalk_State_Node(void);90void Beanstalk_State_Platform(void);91void Beanstalk_State_Chomper(void);9293#endif //! OBJ_BEANSTALK_H949596