You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
1.6 KiB

/**
* @file automap.h
*
* Interface of the in-game map overlay.
*/
#pragma once
#include <cstdint>
#include "engine.h"
#include "engine/displacement.hpp"
#include "engine/point.hpp"
#include "gendung.h"
namespace devilution {
/** Specifies whether the automap is enabled. */
extern bool AutomapActive;
/** Tracks the explored areas of the map. */
extern bool AutomapView[DMAXX][DMAXY];
/** Specifies the scale of the automap. */
extern int AutoMapScale;
extern Displacement AutomapOffset;
extern int AmLine64;
extern int AmLine32;
extern int AmLine16;
extern int AmLine8;
extern int AmLine4;
/**
* @brief Initializes the automap.
*/
void InitAutomapOnce();
/**
* @brief Loads the mapping between tile IDs and automap shapes.
*/
void InitAutomap();
/**
* @brief Displays the automap.
*/
void StartAutomap();
/**
* @brief Scrolls the automap upwards.
*/
void AutomapUp();
/**
* @brief Scrolls the automap downwards.
*/
void AutomapDown();
/**
* @brief Scrolls the automap leftwards.
*/
void AutomapLeft();
/**
* @brief Scrolls the automap rightwards.
*/
void AutomapRight();
/**
* @brief Increases the zoom level of the automap.
*/
void AutomapZoomIn();
/**
* @brief Decreases the zoom level of the automap.
*/
void AutomapZoomOut();
/**
* @brief Renders the automap to the given buffer.
*/
void DrawAutomap(const Surface &out);
/**
* @brief Marks the given coordinate as within view on the automap.
*/
void SetAutomapView(Point tile);
/**
* @brief Resets the zoom level of the automap.
*/
void AutomapZoomReset();
} // namespace devilution