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.
83 lines
1.9 KiB
83 lines
1.9 KiB
/** |
|
* @file debug.h |
|
* |
|
* Interface of debug functions. |
|
*/ |
|
#pragma once |
|
|
|
#include <cstdint> |
|
#include <string_view> |
|
|
|
#include <ankerl/unordered_dense.h> |
|
|
|
#include "diablo.h" |
|
#include "engine.h" |
|
#include "engine/clx_sprite.hpp" |
|
|
|
namespace devilution { |
|
|
|
extern std::string TestMapPath; |
|
extern OptionalOwnedClxSpriteList pSquareCel; |
|
extern bool DebugToggle; |
|
extern bool DebugGodMode; |
|
extern bool DebugInvisible; |
|
extern bool DebugVision; |
|
extern bool DebugPath; |
|
extern bool DebugGrid; |
|
extern ankerl::unordered_dense::map<int, Point> DebugCoordsMap; |
|
extern bool DebugScrollViewEnabled; |
|
extern std::string debugTRN; |
|
extern uint32_t glMid1Seed[NUMLEVELS]; |
|
extern uint32_t glMid2Seed[NUMLEVELS]; |
|
extern uint32_t glMid3Seed[NUMLEVELS]; |
|
extern uint32_t glEndSeed[NUMLEVELS]; |
|
|
|
enum class DebugGridTextItem : uint16_t { |
|
None, |
|
microTiles, |
|
dPiece, |
|
dTransVal, |
|
dLight, |
|
dPreLight, |
|
dFlags, |
|
dPlayer, |
|
dMonster, |
|
dCorpse, |
|
dObject, |
|
dItem, |
|
dSpecial, |
|
|
|
coords, |
|
cursorcoords, |
|
objectindex, |
|
|
|
// take dPiece as index |
|
Solid, |
|
Transparent, |
|
Trap, |
|
|
|
// megatiles |
|
AutomapView, |
|
dungeon, |
|
pdungeon, |
|
Protected, |
|
}; |
|
|
|
void FreeDebugGFX(); |
|
void LoadDebugGFX(); |
|
void GetDebugMonster(); |
|
void NextDebugMonster(); |
|
void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3Seed, uint32_t endSeed); |
|
bool IsDebugGridTextNeeded(); |
|
bool IsDebugGridInMegatiles(); |
|
DebugGridTextItem GetDebugGridTextType(); |
|
void SetDebugGridTextType(DebugGridTextItem value); |
|
bool GetDebugGridText(Point dungeonCoords, char *debugGridTextBuffer); |
|
bool IsDebugAutomapHighlightNeeded(); |
|
bool ShouldHighlightDebugAutomapTile(Point position); |
|
void AddDebugAutomapMonsterHighlight(std::string_view name); |
|
void AddDebugAutomapItemHighlight(std::string_view name); |
|
void AddDebugAutomapObjectHighlight(std::string_view name); |
|
void ClearDebugAutomapHighlights(); |
|
|
|
} // namespace devilution
|
|
|