Text glow color
This commit is contained in:
parent
a679544531
commit
83ccb92c54
@ -48,6 +48,9 @@ namespace game
|
||||
WEAK symbol<int(const char* fname)> generateHashValue{0x343D20};
|
||||
|
||||
WEAK symbol<bool()> CL_IsCgameInitialized{0x3CA0C0};
|
||||
WEAK symbol<void(const char* text, int maxChars, Font_s* font, float x, float y, float xScale, float yScale,
|
||||
const float* color, int style, const float* glowColor, Material* fxMaterial, Material* fxMaterialGlow,
|
||||
int fxBirthTime, int fxLetterTime, int fxDecayStartTime, int fxDecayDuration, int a17)> CL_DrawTextPhysicalWithEffects{0x3D4990};
|
||||
|
||||
WEAK symbol<unsigned int (unsigned int parentId, unsigned int name)> FindVariable{0x5C1D50};
|
||||
WEAK symbol<unsigned int(int entnum, unsigned int classnum)> FindEntityId{0x5C1C50};
|
||||
|
@ -192,6 +192,14 @@ namespace ui_scripting
|
||||
this->color[3] = a;
|
||||
}
|
||||
|
||||
void element::set_glow_color(float r, float g, float b, float a)
|
||||
{
|
||||
this->glow_color[0] = r;
|
||||
this->glow_color[1] = g;
|
||||
this->glow_color[2] = b;
|
||||
this->glow_color[3] = a;
|
||||
}
|
||||
|
||||
void element::set_border_material(const std::string& _material)
|
||||
{
|
||||
this->border_material = _material;
|
||||
@ -331,11 +339,16 @@ namespace ui_scripting
|
||||
auto _horzalign = get_align_value(this->horzalign, (float)text_width, relative(this->w));
|
||||
auto _vertalign = get_align_value(this->vertalign, (float)relative(this->fontsize), relative(this->h));
|
||||
|
||||
game::R_AddCmdDrawText(this->text.data(), 0x7FFFFFFF, _font,
|
||||
game::CL_DrawTextPhysicalWithEffects(
|
||||
this->text.data(),
|
||||
0x7FFFFFFF,
|
||||
_font,
|
||||
relative(this->x) + relative(this->text_offset[0]) + _horzalign + relative(this->border_width[3]),
|
||||
relative(this->y) + relative(this->text_offset[1]) + _vertalign + relative(this->fontsize) + relative(this->border_width[0]),
|
||||
1.0f, 1.0f, 0.0f,
|
||||
(float*)this->color, 0
|
||||
1.f, 1.f,
|
||||
(float*)this->color, 0,
|
||||
(float*)this->glow_color,
|
||||
0, 0, 0, 0, 0, 0, 0
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ namespace ui_scripting
|
||||
void set_font(const std::string& _font);
|
||||
void set_font(const std::string& _font, const int _fontsize);
|
||||
void set_color(float r, float g, float b, float a);
|
||||
void set_glow_color(float r, float g, float b, float a);
|
||||
void set_text_offset(float x, float y);
|
||||
|
||||
void set_background_color(float r, float g, float b, float a);
|
||||
@ -51,6 +52,7 @@ namespace ui_scripting
|
||||
|
||||
float text_offset[2] = {0.f, 0.f};
|
||||
float color[4] = {1.f, 1.f, 1.f, 1.f};
|
||||
float glow_color[4] = {0.f, 0.f, 0.f, 0.f};
|
||||
float background_color[4] = {0.f, 0.f, 0.f, 0.f};
|
||||
float border_color[4] = {0.f, 0.f, 0.f, 0.f};
|
||||
float border_width[4] = {0.f, 0.f, 0.f, 0.f};
|
||||
@ -59,7 +61,7 @@ namespace ui_scripting
|
||||
alignment horzalign = alignment::start;
|
||||
alignment vertalign = alignment::start;
|
||||
|
||||
std::string font = "fonts/fira_mono_regular.ttf";
|
||||
std::string font = "default";
|
||||
std::string material = "white";
|
||||
std::string border_material = "white";
|
||||
std::string text{};
|
||||
|
@ -195,6 +195,7 @@ namespace ui_scripting::lua
|
||||
element_type["settext"] = &element::set_text;
|
||||
element_type["setmaterial"] = &element::set_material;
|
||||
element_type["setcolor"] = &element::set_color;
|
||||
element_type["setglowcolor"] = &element::set_glow_color;
|
||||
element_type["setbackcolor"] = &element::set_background_color;
|
||||
element_type["setbordercolor"] = &element::set_border_color;
|
||||
element_type["setborderwidth"] = sol::overload(
|
||||
@ -280,6 +281,25 @@ namespace ui_scripting::lua
|
||||
}
|
||||
);
|
||||
|
||||
element_type["glowcolor"] = sol::property(
|
||||
[](element& element, const sol::this_state s)
|
||||
{
|
||||
auto color = sol::table::create(s.lua_state());
|
||||
color["r"] = element.glow_color[0];
|
||||
color["g"] = element.glow_color[1];
|
||||
color["b"] = element.glow_color[2];
|
||||
color["a"] = element.glow_color[3];
|
||||
return color;
|
||||
},
|
||||
[](element& element, const sol::lua_table color)
|
||||
{
|
||||
element.glow_color[0] = color["r"].get_type() == sol::type::number ? color["r"].get<float>() : 0.f;
|
||||
element.glow_color[1] = color["g"].get_type() == sol::type::number ? color["g"].get<float>() : 0.f;
|
||||
element.glow_color[2] = color["b"].get_type() == sol::type::number ? color["b"].get<float>() : 0.f;
|
||||
element.glow_color[3] = color["a"].get_type() == sol::type::number ? color["a"].get<float>() : 0.f;
|
||||
}
|
||||
);
|
||||
|
||||
element_type["backcolor"] = sol::property(
|
||||
[](element& element, const sol::this_state s)
|
||||
{
|
||||
|
@ -15,14 +15,22 @@ namespace ui_scripting
|
||||
}
|
||||
|
||||
void menu::open()
|
||||
{
|
||||
if (this->cursor)
|
||||
{
|
||||
*game::keyCatchers |= 0x40;
|
||||
}
|
||||
|
||||
this->visible = true;
|
||||
}
|
||||
|
||||
void menu::close()
|
||||
{
|
||||
if (this->cursor)
|
||||
{
|
||||
*game::keyCatchers &= ~0x40;
|
||||
}
|
||||
|
||||
this->visible = false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user