|
|
|
|
/**
|
|
|
|
|
* @file debug.h
|
|
|
|
|
*
|
|
|
|
|
* Interface of debug functions.
|
|
|
|
|
*/
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <unordered_map>
|
|
|
|
|
|
|
|
|
|
#include "engine.h"
|
|
|
|
|
#include "engine/cel_sprite.hpp"
|
|
|
|
|
#include "miniwin/miniwin.h"
|
|
|
|
|
#include "utils/stdcompat/optional.hpp"
|
|
|
|
|
#include "utils/stdcompat/string_view.hpp"
|
|
|
|
|
|
|
|
|
|
namespace devilution {
|
|
|
|
|
|
|
|
|
|
enum class DebugInfoFlags : uint16_t {
|
|
|
|
|
// clang-format off
|
|
|
|
|
empty = 0,
|
|
|
|
|
dPiece = 1 << 0,
|
|
|
|
|
dTransVal = 1 << 1,
|
|
|
|
|
dLight = 1 << 2,
|
|
|
|
|
dPreLight = 1 << 3,
|
|
|
|
|
dFlags = 1 << 4,
|
|
|
|
|
dPlayer = 1 << 5,
|
|
|
|
|
dMonster = 1 << 6,
|
|
|
|
|
dCorpse = 1 << 7,
|
|
|
|
|
dObject = 1 << 8,
|
|
|
|
|
dItem = 1 << 9,
|
|
|
|
|
dSpecial = 1 << 10,
|
|
|
|
|
// clang-format on
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern std::optional<CelSprite> pSquareCel;
|
|
|
|
|
extern bool DebugToggle;
|
|
|
|
|
extern bool DebugGodMode;
|
|
|
|
|
extern bool DebugVision;
|
|
|
|
|
extern bool DebugCoords;
|
|
|
|
|
extern bool DebugCursorCoords;
|
|
|
|
|
extern bool DebugGrid;
|
|
|
|
|
extern std::unordered_map<int, Point> DebugCoordsMap;
|
|
|
|
|
extern DebugInfoFlags DebugInfoFlag;
|
|
|
|
|
|
|
|
|
|
void FreeDebugGFX();
|
|
|
|
|
void LoadDebugGFX();
|
|
|
|
|
void PrintDebugPlayer(bool bNextPlayer);
|
|
|
|
|
void PrintDebugQuest();
|
|
|
|
|
void GetDebugMonster();
|
|
|
|
|
void NextDebugMonster();
|
|
|
|
|
void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3Seed, uint32_t endSeed);
|
|
|
|
|
bool CheckDebugTextCommand(const string_view text);
|
|
|
|
|
int DebugGetTileData(Point dungeonCoords);
|
|
|
|
|
|
|
|
|
|
} // namespace devilution
|