Path: blob/master/SonicMania/Objects/CPZ/RotatingStair.h
338 views
#ifndef OBJ_ROTATINGSTAIR_H1#define OBJ_ROTATINGSTAIR_H23#include "Game.h"45typedef enum {6ROTATINGSTAIR_LEFT,7ROTATINGSTAIR_DOWN,8ROTATINGSTAIR_RIGHT,9ROTATINGSTAIR_UP,10ROTATINGSTAIR_LEFT_INTERVAL,11ROTATINGSTAIR_DOWN_INTERVAL,12ROTATINGSTAIR_RIGHT_INTERVAL,13ROTATINGSTAIR_UP_INTERVAL,14} RotatingStairModes;1516// Object Class17struct ObjectRotatingStair {18RSDK_OBJECT19uint8 unused; // its set to 0, but its not actually used20};2122// Entity Class23struct EntityRotatingStair {24RSDK_ENTITY25StateMachine(state);26StateMachine(stateCollide);27RotatingStairModes mode;28Vector2 amplitude;29int32 speed;30bool32 hasTension;31int8 frameID;32uint8 collision;33Vector2 tileOrigin;34Vector2 centerPos;35Vector2 drawPos;36Vector2 collisionOffset;37int32 stood;38int32 timer;39int32 stoodAngle;40uint8 stoodPlayers;41uint8 pushPlayersL;42uint8 pushPlayersR;43Hitbox hitbox;44Animator animator;45int32 childCount;4647uint16 oscOff;48int32 duration;49int32 interval;50};5152// Object Struct53extern ObjectRotatingStair *RotatingStair;5455// Standard Entity Events56void RotatingStair_Update(void);57void RotatingStair_LateUpdate(void);58void RotatingStair_StaticUpdate(void);59void RotatingStair_Draw(void);60void RotatingStair_Create(void *data);61void RotatingStair_StageLoad(void);62#if GAME_INCLUDE_EDITOR63void RotatingStair_EditorDraw(void);64void RotatingStair_EditorLoad(void);65#endif66void RotatingStair_Serialize(void);6768// Extra Entity Functions69void RotatingStair_State_Move(void);70void RotatingStair_State_Move_Intervals(void);7172#endif //! OBJ_ROTATINGSTAIR_H737475