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.
36 lines
959 B
36 lines
959 B
#pragma once |
|
|
|
// sol2 uses std::cout for debug logging by default. |
|
// We want to use SDL logging instead for better compatibility. |
|
|
|
#include <cstddef> |
|
#include <string> |
|
|
|
#include <sol/stack.hpp> |
|
|
|
namespace devilutionx { |
|
void Sol2DebugPrintStack(lua_State *L); |
|
void Sol2DebugPrintSection(const std::string &message, lua_State *L); |
|
} // namespace devilutionx |
|
|
|
namespace sol::detail::debug { |
|
|
|
inline std::string dump_types(lua_State *L) { |
|
std::string visual; |
|
std::size_t size = lua_gettop(L) + 1; |
|
for (std::size_t i = 1; i < size; ++i) { |
|
if (i != 1) { |
|
visual += " | "; |
|
} |
|
visual += type_name(L, stack::get<type>(L, static_cast<int>(i))); |
|
} |
|
return visual; |
|
} |
|
|
|
inline void print_stack(lua_State *L) { ::devilutionx::Sol2DebugPrintStack(L); } |
|
|
|
inline void print_section(const std::string &message, lua_State *L) { |
|
::devilutionx::Sol2DebugPrintSection(message, L); |
|
} |
|
|
|
} // namespace sol::detail::debug
|
|
|