|
|
|
|
/**
|
|
|
|
|
* @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
|