40 lines
662 B
C
40 lines
662 B
C
/**
|
|
* Copyright (c) 2025 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "rpg/overworld/worldpos.h"
|
|
#include "error/error.h"
|
|
|
|
typedef enum {
|
|
RPG_CAMERA_MODE_FREE,
|
|
RPG_CAMERA_MODE_FOLLOW_ENTITY,
|
|
} rpgcameramode_t;
|
|
|
|
typedef struct {
|
|
rpgcameramode_t mode;
|
|
|
|
union {
|
|
worldpos_t free;
|
|
struct {
|
|
uint8_t followEntityId;
|
|
} followEntity;
|
|
};
|
|
} rpgcamera_t;
|
|
|
|
extern rpgcamera_t RPG_CAMERA;
|
|
|
|
/**
|
|
* Initializes the RPG camera.
|
|
*/
|
|
void rpgCameraInit(void);
|
|
|
|
/**
|
|
* Updates the RPG camera.
|
|
*
|
|
* @return An error code.
|
|
*/
|
|
errorret_t rpgCameraUpdate(void); |