Poke_Transporter_GB/source/button_handler.cpp
2024-03-29 19:33:10 -05:00

63 lines
1.0 KiB
C++

#include "button_handler.h"
Button::Button() {}
Button::Button(OBJ_ATTR *L, OBJ_ATTR *R, int nLeft_button_width)
{
button_L = L;
button_R = R;
isWide = true;
left_button_width = nLeft_button_width;
hide();
}
Button::Button(OBJ_ATTR *B)
{
button_L = B;
isWide = false;
hide();
}
void Button::set_location(int nx, int ny)
{
x = nx;
y = ny;
obj_set_pos(button_L, x, y);
if (isWide)
{
obj_set_pos(button_R, x + left_button_width, y);
}
}
void Button::set_highlight(bool highlight)
{
button_L->attr2 &= ~ATTR2_PALBANK_MASK;
button_L->attr2 |= ATTR2_PALBANK(highlight ? 3 : 2);
if (isWide)
{
button_R->attr2 &= ~ATTR2_PALBANK_MASK;
button_R->attr2 |= ATTR2_PALBANK(highlight ? 3 : 2);
}
}
void Button::hide()
{
if (isWide)
{
obj_hide_multi(button_L, 2);
}
else
{
obj_hide(button_L);
}
}
void Button::show()
{
if (isWide)
{
obj_unhide_multi(button_L, 0, 2);
}
else
{
obj_unhide(button_L, 0);
}
}