Files
MinecraftConsoles/Minecraft.Client/SlideButton.cpp
Loki Rautio 087b7e7abf Revert "Project modernization (#630)"
This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.

This reverts commit a9be52c41a.
2026-03-07 21:12:22 -06:00

51 lines
1.3 KiB
C++

#include "stdafx.h"
#include "SlideButton.h"
SlideButton::SlideButton(int id, int x, int y, const Options::Option *option, const wstring& msg, float value) : Button(id, x, y, 150, 20, msg)
{
this->sliding = false; //4J added
this->option = option;
this->value = value;
}
int SlideButton::getYImage(bool hovered)
{
return 0;
}
void SlideButton::renderBg(Minecraft *minecraft, int xm, int ym)
{
if (!visible) return;
if (sliding)
{
value = (xm - (x + 4)) / (float) (w - 8);
if (value < 0) value = 0;
if (value > 1) value = 1;
minecraft->options->set(option, value);
msg = minecraft->options->getMessage(option);
}
glColor4f(1, 1, 1, 1);
blit(x + (int) (value * (w - 8)), y, 0, 46 + 1 * 20, 4, 20);
blit(x + (int) (value * (w - 8)) + 4, y, 196, 46 + 1 * 20, 4, 20);
}
bool SlideButton::clicked(Minecraft *minecraft, int mx, int my)
{
if (Button::clicked(minecraft, mx, my))
{
value = (mx - (x + 4)) / (float) (w - 8);
if (value < 0) value = 0;
if (value > 1) value = 1;
minecraft->options->set(option, value);
msg = minecraft->options->getMessage(option);
sliding = true;
return true;
}
return false;
}
void SlideButton::released(int mx, int my)
{
sliding = false;
}