Path: blob/master/SonicMania/Objects/SPZ/DirectorChair.h
338 views
#ifndef OBJ_DIRECTORCHAIR_H1#define OBJ_DIRECTORCHAIR_H23#include "Game.h"45typedef enum {6DIRECTORCHAIR_CLOSED,7DIRECTORCHAIR_STRETCHED,8} DirectorChairTypes;910// Object Class11struct ObjectDirectorChair {12RSDK_OBJECT13uint8 extendCount;14uint8 retractCount;15uint16 aniFrames;16Hitbox hitboxChair;17Hitbox hitboxL;18Hitbox hitboxR;19uint16 sfxUnravel;20uint16 sfxExtend;21uint16 sfxRetract;22};2324// Entity Class25struct EntityDirectorChair {26// Platform "Inherit"27RSDK_ENTITY28StateMachine(state);29StateMachine(stateCollide);30int32 type;31Vector2 amplitude;32int32 speed;33bool32 hasTension;34int8 frameID;35uint8 collision;36Vector2 tileOrigin;37Vector2 centerPos;38Vector2 drawPos;39Vector2 collisionOffset;40int32 stood;41int32 timer;42int32 size;43uint8 stoodPlayers;44uint8 pushPlayersL;45uint8 pushPlayersR;46Hitbox hitbox;47Animator animator;48int32 childCount;4950Animator scissorAnimator;51int32 extendVel;52int32 minRetract;53int32 initExtendVel;54};5556// Object Struct57extern ObjectDirectorChair *DirectorChair;5859// Standard Entity Events60void DirectorChair_Update(void);61void DirectorChair_LateUpdate(void);62void DirectorChair_StaticUpdate(void);63void DirectorChair_Draw(void);64void DirectorChair_Create(void *data);65void DirectorChair_StageLoad(void);66#if GAME_INCLUDE_EDITOR67void DirectorChair_EditorDraw(void);68void DirectorChair_EditorLoad(void);69#endif70void DirectorChair_Serialize(void);7172// Extra Entity Functions73void DirectorChair_Collide_Chair(void);7475void DirectorChair_State_Idle(void);76void DirectorChair_State_StartExtend(void);77void DirectorChair_State_Extend(void);78void DirectorChair_State_StartRetract(void);79void DirectorChair_State_Retract(void);8081#endif //! OBJ_DIRECTORCHAIR_H828384