mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-28 04:51:42 +00:00
Descriptive spectator controls
This commit is contained in:
parent
7161de29fd
commit
c2f56050c3
1 changed files with 11 additions and 35 deletions
|
|
@ -39,10 +39,9 @@ struct List
|
||||||
{
|
{
|
||||||
struct Field
|
struct Field
|
||||||
{
|
{
|
||||||
Field(const char* label, Draw::Button button, std::optional<bool> pressed = {}) :
|
Field(const char* label, const char* button = {}) :
|
||||||
label_(Draw::TextElement(label).font(Draw::Font::kThin)),
|
label_(Draw::TextElement(label).font(Draw::Font::kThin)),
|
||||||
button_(button),
|
btlabel_(Draw::TextElement().parse(button).font(Draw::Font::kThin))
|
||||||
pressed_(pressed)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -55,29 +54,7 @@ struct List
|
||||||
col.text(label_);
|
col.text(label_);
|
||||||
col = col.x(left ? -(kButtonWidth + kButtonMargin) : width() - (kButtonWidth + kFieldSpacing));
|
col = col.x(left ? -(kButtonWidth + kButtonMargin) : width() - (kButtonWidth + kFieldSpacing));
|
||||||
|
|
||||||
//if (r_splitscreen)
|
col.text(btlabel_);
|
||||||
{
|
|
||||||
auto small_button_offset = [&]
|
|
||||||
{
|
|
||||||
switch (button_)
|
|
||||||
{
|
|
||||||
case Draw::Button::l:
|
|
||||||
case Draw::Button::r:
|
|
||||||
return -4;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
col.y(small_button_offset()).small_button(button_, pressed_);
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
else
|
|
||||||
{
|
|
||||||
col.y(-4).button(button_, pressed_);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -86,8 +63,7 @@ struct List
|
||||||
static constexpr int kFieldSpacing = 8;
|
static constexpr int kFieldSpacing = 8;
|
||||||
|
|
||||||
Draw::TextElement label_;
|
Draw::TextElement label_;
|
||||||
Draw::Button button_;
|
Draw::TextElement btlabel_;
|
||||||
std::optional<bool> pressed_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
List(int x, int y) : row_(split_draw(x, y, left_)) {}
|
List(int x, int y) : row_(split_draw(x, y, left_)) {}
|
||||||
|
|
@ -209,7 +185,7 @@ void K_drawSpectatorHUD(boolean director)
|
||||||
label += fmt::format(" [{}/{}]", numingame, cv_maxplayers.value);
|
label += fmt::format(" [{}/{}]", numingame, cv_maxplayers.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
list.insert({{label.c_str(), Draw::Button::l}});
|
list.insert({{label.c_str(), "<l_animated>"}});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (director || camera[viewnum].freecam)
|
if (director || camera[viewnum].freecam)
|
||||||
|
|
@ -217,14 +193,14 @@ void K_drawSpectatorHUD(boolean director)
|
||||||
// Not locked into freecam -- can toggle it.
|
// Not locked into freecam -- can toggle it.
|
||||||
if (director)
|
if (director)
|
||||||
{
|
{
|
||||||
list.insert({{"Freecam", Draw::Button::c}});
|
list.insert({{"Freecam", "<c_animated>"}});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool press = D_LocalTiccmd(viewnum)->buttons & BT_RESPAWN;
|
bool press = D_LocalTiccmd(viewnum)->buttons & BT_RESPAWN;
|
||||||
const char* label = (press && I_GetTime() % 16 < 8) ? "> <" : ">< ";
|
const char* label = (press && I_GetTime() % 16 < 8) ? "> <" : ">< ";
|
||||||
|
|
||||||
list.insert({{label, Draw::Button::y, press}, {"Exit", Draw::Button::c}});
|
list.insert({{label, press ? "<y_pressed>" : "<y>"}, {"Exit", "<c_animated>"}});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -232,19 +208,19 @@ void K_drawSpectatorHUD(boolean director)
|
||||||
{
|
{
|
||||||
if (numingame > 1)
|
if (numingame > 1)
|
||||||
{
|
{
|
||||||
list.insert({{"+", Draw::Button::a}, {"-", Draw::Button::x}});
|
list.insert({{"+", "<a_animated>"}, {"-", "<x_animated>"}});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player)
|
if (player)
|
||||||
{
|
{
|
||||||
list.insert({{K_DirectorIsEnabled(viewnum) ? "\x82" "Director" : "Director", Draw::Button::r}});
|
list.insert({{K_DirectorIsEnabled(viewnum) ? "\x82" "Director" : "Director", "<r_animated>"}});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto bt = D_LocalTiccmd(viewnum)->buttons;
|
auto bt = D_LocalTiccmd(viewnum)->buttons;
|
||||||
|
|
||||||
list.insert({{"", Draw::Button::r, bt & BT_DRIFT}, {"Pivot", Draw::Button::b, bt & BT_LOOKBACK}});
|
list.insert({{"", bt & BT_DRIFT ? "<r_pressed>" : "<r>"}, {"Pivot", bt & BT_LOOKBACK ? "<b_pressed>" : "<b>"}});
|
||||||
list.insert({{"+", Draw::Button::a, bt & BT_ACCELERATE}, {"-", Draw::Button::x, bt & BT_BRAKE}});
|
list.insert({{"+", bt & BT_ACCELERATE ? "<a_pressed>" : "<a>"}, {"-", bt & BT_BRAKE ? "<x_pressed>" : "<x>"}});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue