Path: blob/master/SonicMania/Objects/Global/Camera.h
338 views
#ifndef OBJ_CAMERA_H1#define OBJ_CAMERA_H23#include "Game.h"45typedef enum {6CAMERA_LERP_NORMAL,7CAMERA_LERP_SIN1024,8CAMERA_LERP_SIN1024_2,9CAMERA_LERP_SIN512,10} CameraLerpType;1112// Object Class13struct ObjectCamera {14RSDK_OBJECT15Vector2 centerBounds;16};1718// Entity Class19struct EntityCamera {20RSDK_ENTITY21StateMachine(state);22Entity *target;23int32 screenID;24Vector2 center;25Vector2 targetMoveVel;26Vector2 lastPos;27Vector2 shakePos;28Vector2 lookPos;29Vector2 offset;30bool32 disableYOffset;31int32 centerY;32int32 adjustY;33int32 lerpPercent;34int32 lerpSpeed;35int32 lerpType;36Vector2 endLerpPos;37Vector2 startLerpPos;38Vector2 boundsOffset;39int32 boundsL;40int32 boundsR;41int32 boundsT;42int32 boundsB;43};4445// Object Struct46extern ObjectCamera *Camera;4748// Standard Entity Events49void Camera_Update(void);50void Camera_LateUpdate(void);51void Camera_StaticUpdate(void);52void Camera_Draw(void);53void Camera_Create(void *data);54void Camera_StageLoad(void);55#if GAME_INCLUDE_EDITOR56void Camera_EditorDraw(void);57void Camera_EditorLoad(void);58#endif59void Camera_Serialize(void);6061// Extra Entity Functions62void Camera_SetCameraBounds(EntityCamera *entity);63EntityCamera *Camera_SetTargetEntity(int32 screen, void *t);64void Camera_ShakeScreen(int32 screen, int32 shakeX, int32 shakeY);65void Camera_HandleHBounds(void);66void Camera_HandleVBounds(void);67void Camera_SetupLerp(int32 type, int32 screen, int32 x, int32 y, int32 speed);6869// States70void Camera_State_MapView(void);71void Camera_State_FollowXY(void);72void Camera_State_FollowX(void);73void Camera_State_FollowY(void);74void Camera_State_HandleLerp(void);7576#endif //! OBJ_CAMERA_H777879