Path: blob/master/SonicMania/Objects/LRZ/LRZConveyor.h
338 views
#ifndef OBJ_LRZCONVEYOR_H1#define OBJ_LRZCONVEYOR_H23#include "Game.h"45typedef enum {6LRZCONVEYOR_BEHAVIOR_CHANGEACTIVE,7LRZCONVEYOR_BEHAVIOR_CHANGEACTIVE_TOGGLE,8LRZCONVEYOR_BEHAVIOR_CHANGEDIR,9LRZCONVEYOR_BEHAVIOR_CHANGEDIR_TOGGLE,10} LRZConveyorButtonBehaviours;1112// Object Class13struct ObjectLRZConveyor {14RSDK_OBJECT15uint16 aniFrames;16color lineColors[64];17};1819// Entity Class20struct EntityLRZConveyor {21RSDK_ENTITY22int32 slope;23int32 length;24int32 speed;25bool32 globalControl;26int32 buttonTag;27uint8 buttonBehavior;28bool32 off;29uint8 isOff;30uint8 startDir;31Vector2 startPos;32int32 unused;33EntityButton *taggedButton;34Hitbox hitbox;35Animator wheelAnimator;36Animator smallWheelAnimator;37};3839// Object Struct40extern ObjectLRZConveyor *LRZConveyor;4142// Standard Entity Events43void LRZConveyor_Update(void);44void LRZConveyor_LateUpdate(void);45void LRZConveyor_StaticUpdate(void);46void LRZConveyor_Draw(void);47void LRZConveyor_Create(void *data);48void LRZConveyor_StageLoad(void);49#if GAME_INCLUDE_EDITOR50void LRZConveyor_EditorDraw(void);51void LRZConveyor_EditorLoad(void);52#endif53void LRZConveyor_Serialize(void);5455// Extra Entity Functions56void LRZConveyor_HandleBehaviour(void);57void LRZConveyor_HandlePlayerInteractions(void);58int32 LRZConveyor_HandlePlayerCollisions(EntityLRZConveyor *conveyor, void *p, Hitbox *hitboxPtr);59void LRZConveyor_DrawWheels(void);60void LRZConveyor_DrawDeformedLine(int32 startY, int32 startX, int32 endX, int32 endY, int32 offsetX, int32 offsetY, int32 len, color *color);61void LRZConveyor_DrawConveyorLines(void);6263#endif //! OBJ_LRZCONVEYOR_H646566