Path: blob/master/SonicMania/Objects/MMZ/Piston.h
338 views
#ifndef OBJ_PISTON_H1#define OBJ_PISTON_H23#include "Game.h"45typedef enum {6PISTON_MOVE_VERTICAL,7PISTON_UP,8PISTON_MOVE_DOWN,9PISTON_MOVE_DOWN_REVERSE,10PISTON_MOVE_RIGHT,11PISTON_MOVE_LEFT,12PISTON_MOVE_HORIZONTAL,13} PistonTypes;1415typedef enum {16PISTON_SIZE_1,17PISTON_SIZE_2,18PISTON_SIZE_3,19} PistonSizes;2021// Object Class22struct ObjectPiston {23RSDK_OBJECT24uint16 sfxLand;25uint16 sfxLaunch;26};2728// Entity Class29struct EntityPiston {30RSDK_ENTITY31StateMachine(state);32StateMachine(stateCollide);33int32 type;34Vector2 amplitude;35int32 speed;36bool32 reverse;37int8 size;38uint8 collision;39Vector2 tileOrigin;40Vector2 centerPos;41Vector2 drawPos;42Vector2 collisionOffset;43int32 stood;44int32 timer;45int32 stoodAngle;46uint8 stoodPlayers;47uint8 pushPlayersL;48uint8 pushPlayersR;49Hitbox hitbox;50Animator animator;51int32 childCount;5253uint16 interval;54uint16 intervalOffset;55int32 distance;56int32 pistonType;57};5859// Object Struct60extern ObjectPiston *Piston;6162// Standard Entity Events63void Piston_Update(void);64void Piston_LateUpdate(void);65void Piston_StaticUpdate(void);66void Piston_Draw(void);67void Piston_Create(void *data);68void Piston_StageLoad(void);69#if GAME_INCLUDE_EDITOR70void Piston_EditorDraw(void);71void Piston_EditorLoad(void);72#endif73void Piston_Serialize(void);7475// Extra Entity Functions7677void Piston_Collide_Solid(void);7879void Piston_State_WaitForInterval(void);8081void Piston_StateMove_Down(void);82void Piston_StateMove_Down_Reverse(void);83void Piston_StateMove_Vertical(void);84void Piston_StateMove_Vertical_Reverse(void);85void Piston_StateMove_Up(void);86void Piston_StateMove_Up_Reverse(void);87void Piston_StateMove_Right(void);88void Piston_StateMove_Left(void);89void Piston_StateMove_Horizontal(void);90void Piston_StateMove_Horizontal_Reverse(void);9192void Piston_StateActive_WaitForStood(void);93void Piston_StateActive_PreparingLaunch(void);94void Piston_StateActive_LaunchPlayers(void);95void Piston_StateActive_ReturnToStartPos(void);9697#endif //! OBJ_PISTON_H9899100