#include "lua/modules/render.hpp" #include #include "DiabloUI/ui_flags.hpp" #include "engine/dx.h" #include "engine/render/text_render.hpp" #include "lua/metadoc.hpp" #include "utils/display.h" namespace devilution { sol::table LuaRenderModule(sol::state_view &lua) { sol::table table = lua.create_table(); LuaSetDocFn(table, "string", "(text: string, x: integer, y: integer)", "Renders a string at the given coordinates", [](std::string_view text, int x, int y) { DrawString(GlobalBackBuffer(), text, { x, y }); }); LuaSetDocFn(table, "screen_width", "()", "Returns the screen width", []() { return gnScreenWidth; }); LuaSetDocFn(table, "screen_height", "()", "Returns the screen height", []() { return gnScreenHeight; }); auto uiFlags = lua.create_table(); uiFlags["DarkRed"] = UiFlags::ColorUiSilver; uiFlags["Yellow"] = UiFlags::ColorYellow; uiFlags["Gold"] = UiFlags::ColorGold; uiFlags["Black"] = UiFlags::ColorBlack; uiFlags["White"] = UiFlags::ColorWhite; uiFlags["WhiteGold"] = UiFlags::ColorWhitegold; uiFlags["Red"] = UiFlags::ColorRed; uiFlags["Blue"] = UiFlags::ColorBlue; uiFlags["Orange"] = UiFlags::ColorOrange; uiFlags["Small"] = UiFlags::FontSize12; uiFlags["Medium"] = UiFlags::FontSize24; uiFlags["Large"] = UiFlags::FontSize30; table["UiFlags"] = uiFlags; return table; } } // namespace devilution