Path: blob/master/SonicMania/Objects/PGZ/PSZDoor.h
338 views
#ifndef OBJ_PSZDOOR_H1#define OBJ_PSZDOOR_H23#include "Game.h"45typedef enum {6PSZDOOR_ORIENATION_D,7PSZDOOR_ORIENATION_U,8PSZDOOR_ORIENATION_L,9PSZDOOR_ORIENATION_R,10} PSZDoorOrientations;1112typedef enum {13PSZDOOR_AUTO_NONE,14PSZDOOR_AUTO_LEFT,15PSZDOOR_AUTO_RIGHT,16} PSZDoorAutomaticIDs;1718// Object Class19struct ObjectPSZDoor {20RSDK_OBJECT21Hitbox hitboxes[2];22uint16 aniFrames;23uint16 sfxOpen;24};2526// Entity Class27struct EntityPSZDoor {28RSDK_ENTITY29uint8 orientation;30bool32 open;31int32 speed;32uint8 id;33int32 automatic;34EntityDoorTrigger *trigger;35bool32 shouldMove;36Vector2 doorPos;37Vector2 offset;38Vector2 startPos; // its set once and never used39Vector2 targetPos;40Animator doorAnimator;41Animator cogAnimator;42};4344// Object Struct45extern ObjectPSZDoor *PSZDoor;4647// Standard Entity Events48void PSZDoor_Update(void);49void PSZDoor_LateUpdate(void);50void PSZDoor_StaticUpdate(void);51void PSZDoor_Draw(void);52void PSZDoor_Create(void *data);53void PSZDoor_StageLoad(void);54#if GAME_INCLUDE_EDITOR55void PSZDoor_EditorDraw(void);56void PSZDoor_EditorLoad(void);57#endif58void PSZDoor_Serialize(void);5960// Extra Entity Functions61int32 PSZDoor_GetRemainingDistance(void);6263#endif //! OBJ_PSZDOOR_H646566