/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "rpg/world/worldpos.hpp" 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. * * @throws std::runtime_error if map position setting fails. */ void rpgCameraUpdate(void);